Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10190 / 13644 ツリー ←次へ | 前へ→

【23167】ツールバーの「ボタンを1行に表示」 tomo 05/3/15(火) 14:09 質問[未読]
【23171】Re:ツールバーの「ボタンを1行に表示」 G-Luck 05/3/15(火) 15:03 発言[未読]
【23183】Re:ツールバーの「ボタンを1行に表示」 tomo 05/3/15(火) 17:14 質問[未読]
【23184】Re:ツールバーの「ボタンを1行に表示」 G-Luck 05/3/15(火) 17:27 発言[未読]
【23188】Re:ツールバーの「ボタンを1行に表示」 tomo 05/3/15(火) 18:56 お礼[未読]
【23223】Re:ツールバーの「ボタンを1行に表示」 G-Luck 05/3/16(水) 16:46 発言[未読]

【23167】ツールバーの「ボタンを1行に表示」
質問  tomo  - 05/3/15(火) 14:09 -

引用なし
パスワード
   EXCEL2002以降からの機能だと思うのですが、
ツールバーの右端にある三角ボタンをクリックすると、
「ボタンを1行に表示」という機能がありますよね。
主に「標準」と「書式設定」のツールバーを、
1行にまとめるのに使われていると思います。
(既に1行のときは「2行に表示」になります。)

これをVBAから行いたいのですが、
どのようなコードになるのでしょうか?
初心者で申し訳ありませんが、宜しくお願いします。

【23171】Re:ツールバーの「ボタンを1行に表示」
発言  G-Luck  - 05/3/15(火) 15:03 -

引用なし
パスワード
   ▼tomo さん:
.RowIndex でツールバーの位置が上下位置がわかるので、
その値をそろえてみては?

【23183】Re:ツールバーの「ボタンを1行に表示」
質問  tomo  - 05/3/15(火) 17:14 -

引用なし
パスワード
   G-Luckさんありがとうございます。
まだ下手なので時間がかかりましたが、
おかげ様で1行に表示することができました。

わがままで申し訳ありませんが、もう1つお聞きしてもよろしいでしょうか?
現在以下のように入力しました。

  CommandBars("standard").RowIndex = 2
  CommandBars("formatting").RowIndex = 2
  CommandBars("standard").Left = 0
  CommandBars("formatting").Left = 100

「標準」を左、「書式設定」を右にしたいと思って、
なんとかその通りにはなりました。
しかし、「書式設定」をもう少し右の方に配置したいと思い、
「100」を「150」や「200」にしたのですが、
「100」の時と場所が変わりません。
どなたか教えていただけないでしょうか?

G-Luckさん、みなさん、
わがままで申し訳ありませんが、よろしくお願いします。

【23184】Re:ツールバーの「ボタンを1行に表示」
発言  G-Luck  - 05/3/15(火) 17:27 -

引用なし
パスワード
   ▼tomo さん:

  buf = CommandBars("formatting").Left

で、現在の値を取得して、+100とかしてみては?

【23188】Re:ツールバーの「ボタンを1行に表示」
お礼  tomo  - 05/3/15(火) 18:56 -

引用なし
パスワード
   ▼G-Luck さん:
お答えありがとうございます。

しかし、上手くいきません。
CommandBars("formatting").Leftの現在の値は「244」だったのですが、

CommandBars("formatting").Left = 300とか、
CommandBars("formatting").Left = CommandBars("formatting").Left + 100

とやってみても、「244」のまま変わりません。

そこで、左側のCommandBars("standard")の幅を変えてみようと思い、
CommandBars("standard").Widthも「244」(Leftは0)なので、

CommandBars("standard").Width=300
CommandBars("standard").Width=CommandBars("standard").Width + 100

などにしてみたのですが、こっちはエラーになってしまいます。
もし、原因がわかりましたら教えてください。

ただし、G-Luck さんの1回目のお答えで
目的の大半は遂げることができましたので、
お礼をさせていただきます。ありがとうございました。

【23223】Re:ツールバーの「ボタンを1行に表示」
発言  G-Luck  - 05/3/16(水) 16:46 -

引用なし
パスワード
   ▼tomo さん:
かなり強引なやり方ですが、

lngIndentの値だけ変化します。

Sub test()
  Dim com3 As CommandBar
  Dim com4 As CommandBar
  Dim lngIndent As Long
  
  Application.ScreenUpdating = False
  
  Set com3 = Application.CommandBars("standard")
  Set com4 = Application.CommandBars("formatting")
  lngIndent = -10
  
  com3.Left = 0
  
  With com4
    .Left = 1
    .RowIndex = com3.RowIndex
    com3.RowIndex = com3.RowIndex + 1
    com3.RowIndex = .RowIndex
    .Left = com3.Width + lngIndent
  End With

  Application.ScreenUpdating = True
End Sub

10190 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free