• ベストアンサー

VBAで作成したツールバーをこちらの思うように表示させるには?

お世話になります。 いろいろと調べてみたので無理な話かもしれませんが。 ExcelのVBAで作成したツールバーを『固定せず移動可能な状態で表示』させたとき、横1列でツールバーが表示されます。これを、こちらがおもう所で折り返して、横2列表示にコントロールさせる方法はありませんか? 表示させてから、ツールバーの枠を上下左右にする稼動させることが面倒で、可能であれば方法を知りたいのです。 ツールバーは、モジュールが含まれるブックファイルを開くことで、毎回新規に作成されます。 Excel97です。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 コントロールが横2列にしか並ばないように、 ツールバーの幅を設定すれば良いのではないでしょうか。 ツールバーの幅をコントロールの幅の 2倍 + 6 程度に設定すればうまく行くようです。 十分に検証したわけではありませんが、以下のような感じで、 横2列に表示できると思います。 Sub sample() Dim cb As CommandBar Dim i As Integer Dim w As Integer On Error Resume Next Application.CommandBars("Sample").Delete On Error GoTo 0 Set cb = Application.CommandBars.Add _ ("Sample", msoBarFloating, False, True) With cb For i = 1 To 20 With .Controls.Add(msoControlButton) .Caption = Format(i, "000") .Style = msoButtonCaption w = .Width End With Next .Width = w * 2 + 6 .Protection = msoBarNoResize .Visible = True End With Set cb = Nothing End Sub Protectionは設定しなくても良いが、 msoBarNoResizeに設定すれば、 サイズ変更できなくなる。

noname#205383
質問者

お礼

貴重なお時間いただきまして、感謝いたします。 解決しました。単純なことでしたね。 Set cb = Application.CommandBars.Add _ ("Sample", msoBarFloating, False, True)         ↓         ↓ cd.Height = 2 これで横(私の説明不足ですが、実際には縦2段でした^^;)に2段にすることができました。 こんな質問でお恥ずかしい限りです^^; ありがとうございました。

関連するQ&A