Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
サンプルマクロが有効にならない その2
投稿日時: 20/05/17 15:30:19
投稿者: taichi

 WinArrowさんから頂いたコードで目的は達成されました。
 
以前出来たComboBoxをショートカットメニューへの登録は最近のEXCELでは諦めざるを
得ないようですね。
Private Sub Workbook_Open() の中で記述するとエラーにはなりませんが、「アドイン」が
表示されません。標準モジュールの中から実行すると「アドイン」は表示されます。
Private Sub Workbook_Open()
  Dim myCB As CommandBar , Dim mysht As Worksheet
  
  On Error Resume Next
  CommandBars("Sample").Delete
  Set myCB = CommandBars.Add(Name:="Sample", _
      Position:=msoBarFloating, MenuBar:=False, Temporary:=True)
  With myCB
      With .Controls.Add(Type:=msoControlComboBox)
          For Each mysht In ThisWorkbook.Sheets
                .AddItem mysht.Name
          Next
          .OnAction = "Sheet選択"
          .Text = "シート名選択"
      End With
      .Visible = True
  End With
End Sub
 
質問1)どこにコードを記述するのがいいでしようか?
        (特定のBOOKを開いた時だけで必要な作業です。)
質問2) 実用的にはなくてもいいことですが、2度目にアドインを開いたときにも、
    アドイン作成時と同じように”シート名選択”と表示させることはできるでしようか?
質問3) アドインタブの"アドイン"という表示を自由に変更できますか?
 
よろしくお願い申し上げます。
    
 

回答
投稿日時: 20/05/17 22:55:10
投稿者: WinArrow
投稿者のウェブサイトに移動

質問1〜3に関するレスをする前に
 
シート名をセットしたドロップダウンリスト的なもの
 
ということで
VBAを使わに方法は、既に前スレで回答がありましたので、割愛しますが、
このほかに、VBAを必要としない方法を紹介します。
 
例:VBA不要:ハイパーリンク方式
目次用のシートを作成しておき、ハイパーリンクを設定しておけば、VBAでなくても
お望みのシートに切替することは可能です。
但し、別のシートに切替するには、一旦、目次シートに戻る必要があります。
目次シートに戻るには、[Alt]+[←]で可能です。
なお、目次シートを作成(再作成)するには、VBAが必要かも?
 
質問1、2に対する回答
 
本体プロシジャお標準モジュールに作成して起き
WorkBook_Openプロシジャからそのプロシジャを呼び出す方式で変更すれば、可能です。
 
 
質問3
「アドイン」タブの名前変更については、分かりません。
 
 
 
 
 
 
 

回答
投稿日時: 20/05/17 23:40:55
投稿者: 角田
投稿者のウェブサイトに移動

> アドインタブの"アドイン"という表示を自由に変更できますか?
できません。
 
 
リボンを自作すれば自由にメニューを作れます
 
AddinBox / CommandBar から リボンUI へ
http://addinbox.sakura.ne.jp/Excel_Tips23.htm

投稿日時: 20/05/18 18:13:14
投稿者: taichi

WinArrow さん ありがとうございます。
 
ハイパーリンク方式 …成る程! 思いつきませんでした。
質問1)が解決して助かりました。
 
 
 角田 さん 参考サイトありがとうございました。