
No.8ベストアンサー
- 回答日時:
こんばんは。
ここのサイトは、他人の書いた内容については触れてはいけないのがルールですが、#6 さんのコードのエラーは、そのままになっているようですから、失礼させていただきます。
理由は、CommandButton も OleObjects も、親オブジェクトが省略されています。本来、CommandButton など、コントロールツールもフォームツールも省略してはいけないのですね。もし、コードが通るとしたら、それは、Option Explicit を入れていないからです。
With ActiveSheet
On Error GoTo ErrMsg
.CommandButton1.Activate '最初に「.」を付けてください。
MsgBox "CommandButtonをActivate しました", vbInformation
End With
Exit Sub
ErrMsg:
MsgBox Err.Description
No.5
- 回答日時:
こんにちは。
通常、特定のオブジェクトを探すわけでないときには、このように、TypeOf を使います。
なお、Excel VBAの場合は、Null値は、特別な値で、Variant 型に特別に入れないと存在しません。オブジェクト型には、Null値は存在しません。Access のコントロール・オブジェクトの一部のプロパティに、値がない場合に、Null値がありますが、Excel VBAには、そのような仕様はありません。
'-----------------------------------------
Sub Test1()
Dim shp As Object
Dim flg As Boolean
For Each shp In ActiveSheet.OLEObjects
If TypeOf shp.Object Is MsForms.CommandButton Then
flg = True
Exit For
End If
Next shp
If flg Then
MsgBox "CommandButton はありました。", vbInformation
Else
MsgBox "CommandButton は見当たりません。", vbExclamation
End If
End Sub
No.4
- 回答日時:
#3ですが、補足いたします。
CommandButton1,2,3...というのは、エクセルお仕着せの名前ですが、これは任意に変更できます。「実行ボタン」なんて名前にも変更可能です。ですから、他人が作ったブックや、過去の自分が作ったブックに、コマンドボタンがあるかどうかの判断に、Nameを使うのは確実ではないと思います。という訳で、下記を提案します。(これはシートモジュールに書いたコードです。標準モジュールの場合は、Meの所を適当なシートに変更して下さい)
Sub test3()
Dim shp As Shape
Dim findFlag As Boolean
For Each shp In Me.Shapes
If shp.Type = msoOLEControlObject Then
If shp.DrawingObject.ProgId = "Forms.CommandButton.1" Then
findFlag = True
MsgBox "コマンドボタン" & vbCrLf & shp.Name & vbCrLf & "がありました"
End If
End If
Next shp
End Sub
No.3
- 回答日時:
ワークシートにコマンドボタンを1個設置して、シートモジュールに、
Sub test()
Stop
End Sub
なんてコードを記述して実行し、ローカルウィンドウを表示させて眺めていると、色々分かってきます。
Sub test2()
Dim shp As Shape
For Each shp In Me.Shapes
Debug.Print shp.Type '-> 12 : msoOLEControlObject
Debug.Print shp.Name '->CommandButton1 但し、任意に変更できる
Debug.Print shp.DrawingObject.ProgId '->Forms.CommandButton.1
Next shp
End Sub
shp.DrawingObject.ProgIdが使えそうですがいかがでしょうか。ただし、普通のシェイプだとエラーになりますので、shp.typeが12で無いときはアクセスしない様なコードにする必要があります。
当方XL2000です。
No.2
- 回答日時:
ある事態が有るかどうかの判定は、VBAの並みの経験では難しい。
何処かで1つ1つ経験を積みマネをするよりほか無い。いっぱい有るし。例 条件付貴所式が有るか、非表示のシートがあるか、フィルターモードかなど色々。
普通は表の勉強から入るし。
例コマンドボタンの貼り付け方から勉強する。
本件は貼り付けて有るかどうかの判定
表と裏のような関係だが、1つ1つ判定のコードの型が違うように思う。
ーー
ツールバーのコントロールのコマンドボタンの例です。
1方法として
Sub test01()
n = Worksheets("Sheet1").OLEObjects.Count
MsgBox n
If n <> 0 Then
For i = 1 To n
MsgBox TypeName(Worksheets("Sheet1").OLEObjects(i))
MsgBox Worksheets("Sheet1").OLEObjects(i).OLEType
MsgBox Worksheets("Sheet1").OLEObjects(i).Name
Next i
Else
MsgBox "在りません"
End If
End Sub
ーー
上記ののWorksheets("Sheet1").OLEObjects(i).Name
の左から13文字がCommandButtonであるか判定する。
最終・肝心のIF文は省略しているので入れてください.
IF Left(Worksheets("Sheet1").OLEObjects(i).Name,13)=
"CommandButton" Then
MsgBox "在ります"
End If
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- レトロゲーム ↓アケコンのレバーとボタンを交換してネオジオ(MVS)カラーにしてみました。 どうですか?どう思いま 2 2022/11/21 18:51
- Android(アンドロイド) AQUOS sense6sの物理ボタン(アシスタントキー)に再生・一時停止を割り当てる方法 2 2022/08/09 00:37
- その他(プログラミング・Web制作) bashコマンドの最後の引数 2 2022/06/24 11:57
このQ&Aを見た人はこんなQ&Aも見ています
-
昔のあなたへのアドバイス
過去のあなたへ一度だけアドバイスを送れる電話があったとします。
-
【お題】甲子園での思い出の残し方
【お題】「球場の砂を持って帰る」はもう古いと思った高校球児が、甲子園で負けた際に、思い出に残そうと思って行ったこと
-
人生で一番思い出に残ってる靴
皆さんの人生で一番思い入れのある靴の話を伺ってみたいです。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
あなたが好きな本屋さんを教えてください
どのくらいの規模間で、どのような本が並んでいるか、どのような雰囲気なのかなどなど...
-
コントロールの存在確認
Visual Basic(VBA)
-
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
押したボタンの位置取得(共通のマクロ)
Excel(エクセル)
-
-
4
Excel VBA ワークシートに貼られたボタン名(Caption)をセルの値から取得するには
その他(プログラミング・Web制作)
-
5
オブジェクト名をVBAで指定する方法を教えてくださ
PowerPoint(パワーポイント)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
特定の名前のオートシェイプの有無を知りたい(エクセルVBA)
Excel(エクセル)
-
8
VBAでオプションボタンなどそれぞれの数を調べたい
Excel(エクセル)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
Excel VBAで、実行時にsheet上のコマンドボタンのCaptionを変更する。
Excel(エクセル)
-
12
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
13
コマンドボタンがデザインモードになったまま
Excel(エクセル)
-
14
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
15
Excel 全シート上のボタンを削除 VBA
Excel(エクセル)
-
16
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
17
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
18
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
19
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
20
エクセルVBA シート上にあるコマンドボタンを削除するには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel:コマンドボタンの移動
-
コマンドボタンを押すたびに大...
-
スクロールしてもボタンを常に...
-
ShowAllDataのエラーを回避したい
-
PPTのコマンドボタンがクリック...
-
Excel VBA --- コマンドボタ...
-
Accessのコマンドボタンの立体...
-
MS_AccessからPDFファイルを開...
-
エクセルでマクロを使わずに複...
-
エクセルVBAでOptionButtonのオ...
-
EXCELのシート上に埋め込...
-
マクロボタンを別のファイルで...
-
エクセルVBA
-
ペイントショッププロ8のツー...
-
ROCKET MOUSEの使い方
-
Acces コマンドボタンで複数条...
-
押したボタンの位置取得(共通の...
-
エミュレータでジョイパットを...
-
ワードにタイマーを設定したい
-
エクセルの罫線
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
スクロールしてもボタンを常に...
-
押したボタンの位置取得(共通の...
-
Excel VBA --- コマンドボタ...
-
Accessのコマンドボタンの立体...
-
PPTのコマンドボタンがクリック...
-
コマンドボタンがあるかどうか...
-
コマンドボタンで「終了ボタン...
-
ShowAllDataのエラーを回避したい
-
エクセルVBAでOptionButtonのオ...
-
エクセルのコマンドボタンの位...
-
エクセルVBA
-
Wordでドラッグした文字列を括...
-
EXCELでNo.を変えて印刷したい
-
エクセルVBA シート上にあるコ...
-
エクセルのマクロでスライドシ...
-
Accessユーザーフォームでコマ...
-
エクセルでマクロボタンを動か...
-
エクセルでマクロを使わずに複...
おすすめ情報