エクセル2007のVBAについて

このQ&Aのポイント
  • エクセル2003で使用していたVBAのコードが、エクセル2007では動作しなくなったようです。特に、セルの右クリックメニューにコンボボックスを作成する部分でエラーが発生しています。他のPCでも同じ現象が確認されたため、環境の問題ではないと考えられます。エクセル2007では、(Type:=msoControlComboBox)のプロパティは使えなくなったのでしょうか?もしそうであれば、代替のプロパティが存在するのか知りたいです。
  • エクセル2007でVBAのコードを使ってセルの右クリックメニューにコンボボックスを作成しようとしていますが、エラーが発生しているようです。エクセル2003では問題なく動作していたため、エクセルのバージョンの違いが原因ではないかと考えています。他のPCでも同じ現象が起きているため、環境の問題ではないと思われます。エクセル2007では、(Type:=msoControlComboBox)の代替プロパティが存在するのか知りたいです。
  • エクセル2007でVBAのコードを使ってセルの右クリックメニューにコンボボックスを追加しようとしていますが、エラーが発生しています。エクセル2003では問題なく動作していたため、エクセルのバージョンの違いが原因ではないかと思われます。他のPCでも同じ現象が起きているため、環境の問題ではないと考えられます。エクセル2007では、(Type:=msoControlComboBox)の代替プロパティが存在するのか教えてください。
回答を見る
  • ベストアンサー

エクセル2007のVBAについて

エクセル2007のVBAについて エクセル2003にて、セルの右クリックメニューにコンボボックスを作成するマクロ 「CommandBars("Cell").Controls.Add(Type:=msoControlComboBox)」を使用していましたが、 エクセル2007に変更したところ、使用できなくなりました。 (エラーも出ないかわりに、メニューも追加されません) 他の2台のPCでも試したところ、同じ結果でしたので、環境のせいではない気がします。 (Type:=msoControlComboBox) のプロパティーが、2007では使えなくなったのでしょうか? もしそうなら、代替プロパティーはあるのでしょうか? 考えられる原因等ご存じの方がおられましたら、ご教授いただけませんでしょうか? どうぞ、よろしくお願いいたします。

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

ご存知の通り2007からはリボンに変更されCommandBarsコントロールの多くはエラーになるか機能しなくなりました。当然ながらメニュー関連は使えません。 2007が登場したときに、2002版のCommandBarsコントロールのほとんどのものを調べてみましたが、2007一般機能で2002までと同じダイアログが出るものは動作するものが多かったと思います。 とはいえ、実質は使えなくなったと考えたほうがいいのではないかと思います。  手動になりますが2007ではクィックアクセスツールバーをカスタマイズできますし、2010ではリボンも簡単にカスタマイズできます。 何がなんでもということであれば、非常に敷居が高くなりますがVSTOやVB2010proなどを使って操作できるようです。

ein-zwei
質問者

お礼

そうなんですね、貴重なご意見をありがとうございました。

関連するQ&A

  • Excell2010VBAmacro互換性

    マイクロソフトオフィス2010EXCELマクロについて質問させてください。 VBAマクロでマウス右クリック時にポップアップメニューを出し、 自作マクロを呼び出すようにしました。動作している。 このマクロを別PCのオフィス2013で動作させると、 マクロ内部ではポップアップメニューを作成動作している ようです(デバッグで通っていること確認)ようですが、 EXCEL画面上にはメニューが表示されません。 サンプルマクロは下記参照。 非互換または設定漏れがあるのでしょうか?   サンプルマクロ Sheet1 --------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset '右クリックメニューを初期設定に戻す Call set_RightMenu '右メニュー登録 End Sub Module1 --------------------------------------- Sub reset_RightMenu() ' '右クリックメニューを初期化 ' Application.CommandBars("Cell").Reset End Sub Public Sub set_RightMenu() ' ' 右クリックメニューを設定する ' Call reset_RightMenu '右クリックメニュー初期化 With Application.CommandBars("Cell") _ .Controls.Add() .BeginGroup = True .Caption = "menu0" .FaceId = 682 .OnAction = "menu0" End With With Application.CommandBars("Cell") _ .Controls.Add(Type:=msoControlPopup) .BeginGroup = True .Caption = "SubMenu" With .Controls.Add(Type:=msoControlButton) .Caption = "menu1" .FaceId = 931 .OnAction = "menu1" End With With .Controls.Add(Type:=msoControlButton) .Caption = "menu2" .FaceId = 931 .OnAction = "menu2" End With End With End Sub Sub menu0 MsgBox "****** Menu 0 *******" End Sub Sub menu1 MsgBox "****** Menu 1 *******" End Sub Sub menu2 MsgBox "****** Menu 2 *******" End Sub

  • Excel VBA コンボボックスについて

    はじめまして、エクセルVBAの超初心者です。 コンボボックスを使ってマクロを組みたいのですが、どうしてで良いか分からず教えていただければと思います。 エクセルのシートに下のようなデータがあるとします A       B りんご     あおもり りんご     ながの みかん     わかやま バナナ     フィリピン コンボボックス1にAセルを重複しないようにセットして コンボボックス2に1で選択されたものをセットしたいのですが。 プロパティのListFillRangeでAの範囲を選択しても、重複してしまい、それからどうして良いのかわかりません。 どなたか教えて頂けませんか?

  • ExcelVBAでExcel上に動的にツールバーを作成しています

    質問です。win98、Excel2000でVBAをいじっている者です。 ExcelVBAでExcel上に動的にツールバーを作成しています。 選択したボタンの編集(M)→名前(N) の変更をマクロ(コード)化したいのですがどのようにすれば宜しいでしょうか。 因みに現在の進捗はこんな感じです。(変数等は省略します) Set myCombar = Application.CommandBars.Add(Name:="メニュー") myComber.Visible = True myCombar.Controls.Add(Type:=msoControlButton, ID:=2950).OnAction = "Return_Menu" 宜しくお願いします。

  • エクセルVBA 保護シート&フィルタ実行 全シート

    VBA超初心者です。 たくさんのシートのあるエクセルで、 シート保護後もフィルタを使用できるようにVBAを設定したいと思ってます。 (現在エクセル2000を使用してます) ネットで調べてVBAを設定してみました。 しかし下記のようにするとコンパイルエラーになってしまうのですが、 正しい方法を教えていただけると助かります。 Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean)   Application.CommandBars("Cell").Reset End Sub Private Sub Workbook_Open()   With Application.CommandBars("Cell").Controls.Add( _            Type:=msoControlButton, Before:=1, Temporary:=True)     .Caption = "AutoFilter"     .OnAction = "ThisWorkbook.filter"   End With   With Worksheets.Select     .Unprotect     .EnableAutoFilter = True     .Protect UserInterfaceOnly:=True   End With End Sub Private Sub filter()   On Error Resume Next   Selection.AutoFilter End Sub

  • エクセル2007で自前のツールバーを作る方法

    エクセル2000です。 以下のマクロで自前の新しいツールバーが作れ、作動します。 ところがエクセル2007ではうんともすんとも言ってくれません。 エクセル2007で使う場合はどのようにしたらよいでしょうか? ユーザーフォームで似たようなものを作る方法はわかるのですが、できれば以下の方法を使いたいのです。 Sub 三択メニュー() On Error Resume Next Application.CommandBars("選択します").Delete On Error GoTo 0 Application.CommandBars.Add Name:="選択します", Position:=msoBarFloating With Application.CommandBars("選択します") .Visible = True .Controls.Add Type:=msoControlButton With .Controls(1) .Style = msoButtonCaption .Caption = "⇒メニュー1 " .OnAction = "Msg_1" End With .Controls.Add Type:=msoControlButton With .Controls(2) .Style = msoButtonCaption .Caption = "⇒メニュー2 " .OnAction = "Msg_2" End With .Controls.Add Type:=msoControlButton With .Controls(3) .Style = msoButtonCaption .Caption = "⇒メニュー3 " .OnAction = "Msg_3" End With End With End Sub Sub Msg_1() Application.CommandBars("選択します").Delete MsgBox "追加コマンド1を処理しました。" End Sub Sub Msg_2() Application.CommandBars("選択します").Delete MsgBox "追加コマンド2を処理しました。" End Sub Sub Msg_3() Application.CommandBars("選択します").Delete MsgBox "追加コマンド3を処理しました。" End Sub

  • Excelで追加した右クリックメニューが動かない

    Windows Vista Excel2007です。 Sheet1に、次のようにVBAでプログラミングしたのですが、 '------------------------------------------------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)   Application.CommandBars("Cell").Reset   With Application.CommandBars("Cell").Controls.Add()     .Caption = "テスト"     .OnAction = "test"   End With End Sub Public Sub test()   MsgBox "OK" End Sub '------------------------------------------------------------------------------- 右クリックメニューには追加できたのですが、その「テスト」メニューをクリックすると、 次のようなエラーダイアログが表示されます。 「マクロ'Book1!test'を実行できません。このブックでマクロが使用できないか、 またはすべてのマクロが無効になっている可能性があります。」 セキュリティセンターは「すべてのマクロを有効にする」に設定しており、他のマクロは正常に動作します。 どうしてエラーになるのか全く分かりません。 どなたか原因をご存知の方、ご教示をお願いします。

  • エクセルVBAのカレンダーコントロールの件で

    エクセルVBAを使用して リストボックスかコンボボックスかテキストボックスかを クリックするとカレンダーコントロールが呼び出されて カレンダーコントロールの日付をクリックすると カレンダーコントロールは閉じその値が上記2行目いずれかに 入力されるようにすることは可能なのでしょうか いろいろ文献を探してみたのですがよくわからずじまいでした よろしくお願いします

  • エクセル2003で作成したVBAを2007で使用したい

    エクセル2003で下記のようなVBAを作成していました。 作成した物を使用者が印刷設定を変更できないように ブックを開くと同時に印刷ボタンなどを非表示にしていたのですが・・・ 2007でも使用出来るようにしたいと思ったのですが 2007ではこのままではエラーが出てしまうようです。 2007はまったく扱ったことがないのでどのようにすればよいかわかりません。 どなたかご教授いただけたらと思います。 Private Sub Workbook_Open() Application.DisplayStatusBar = False 'ステータスバー非表示 'ブックを開く時ページ設定と印刷を非表示 On Error Resume Next Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("ページ設定(&U)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷(&P)...").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷プレビュー(&V)").Enabled = False Application.CommandBars("Worksheet Menu Bar").Controls("ファイル(&F)") _ .Controls("印刷範囲(&T)").Enabled = False Application.CommandBars("Standard").Enabled = False End Sub

  • EXCEL VBA:シートの右クリックメニューへの追加方法

    (1)EXCEL VBAで、シートの右クリックメニューへの追加方法が下記の通り、ある本に載っていたので試してみましたが、うまく動作しません。 どこが間違っているか教えて下さい。  Sub シートの右クリックメニュー追加()  With CommandBars("Ply").Controls.Add  .Caption = "AAA(メニューの表示文字)"  .OnAction = "BBB(実行するマクロ名)"  .BeginGroup = True  End With  End Sub (2)上記「シートの右クリックメニュー追加」+BBBマクロをアドインへ組み込み、皆さんへ配布して、右クリックメニューで動作させたいのですが、やり方を教えて下さい。 宜しく、お願いします。

  • VBA コントロール EXCEL

    VBAでプログラミングしています。 Excelでコントロールを使用しようと思いますが、 数が多くなりそうですが~ オプション ボタン 約20600個 チェック ボックス 約600個 コンボ ボックス 約500個 コマンドボタン 約300個 そして、上のコントロールにVBAで制御をする予定です。 値を設定、値を取得、イベントの発生などの動作になります。 環境はEXCEL 2003になります。 これで問題ないですか。 問題があったらどんな問題がありますか。(速度、メモリ、容量、エラーなど) 教えてください~

専門家に質問してみよう