Excelノート 14-03 ***********

HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ

タイトル欄のアドレスは、 エクセルファンクラブ の該当する頁へのリンク先です。
詳しい事は、こちらの
お願い をご覧になってください。

41 セルに書いたマクロ名を実行するには?
42 マクロで検索(Findメソッド)した時、該当がなかった場合のエラー処理をするには?
43 メニューバーのコマンドのIDを知りたい
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56
57 
58 
59 
60 

41 セルに書いたマクロ名を実行するには?
http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200302/03020448.txt
 「セルに書いたマクロ名を起動することはできませんか?」 【VBAラウンジ】
'(1)呼び出し元ブックに当該マクロが書いてある場合
Sub test2()
    On Error GoTo ErrorHandler
    Application.Run "呼び出し先ブック名!" & Range("A1").Value
    Exit Sub
ErrorHandler:
    MsgBox "マクロ名が不正です", vbCritical
End Sub
'(2)呼び出し先ブックに書いてある場合
Sub test3()
    On Error GoTo ErrorHandler
    Application.Run Workbooks("呼び出し元ブック名").Worksheets("Sheet1").Range("A1").Value
    Exit Sub
ErrorHandler:
    MsgBox "マクロ名が不正です", vbCritical
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 
 
42 マクロで検索(Find)した時、該当がなかった場合のエラー処理をするには?
http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200207/02070237.txt
  「オブジェクト変数のエラーが解決できません」
「実行時エラー(91)オブジェクト変数またはwithブロック変数がせっていされていません」
と出て、エラートラップに飛べない場合があります。
Sub test2()
 Dim rng As Range
 Set rng = Columns("A").Find(What:="検索", LookAt:=xlWhole)
 If Not rng Is Nothing Then
  MsgBox "検索は、" & rng.Address(False, False) & " セルです。"
 Else
  MsgBox "該当なし"
  Exit Sub
 End If
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 
43 メニューバーのコマンド設定一覧
http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200302/03020361.txt
 「メニューバーを展開するには?」
Sub ツールバーリストアップ()
 Dim cb As CommandBar, cbc As CommandBarControl
 Dim r As Long: r = 2
 For Each cb In Application.CommandBars
  Cells(r, 1) = cb.Name
  Cells(r, 2) = cb.NameLocal
  Cells(r, 3) = cb.Enabled
  Cells(r, 4) = cb.Visible
  For Each cbc In cb.Controls
   Call コントロール処理(cbc, r, 5)
  Next
 Next
 Cells(r, 2).Select
End Sub
Private Sub コントロール処理(ByVal cbc As CommandBarControl, r As Long, c As Long)
 Dim cbcSubControls As CommandBarControls
 r = r + 1
 On Error GoTo ChangeNumberFormat
 Cells(r, c).Value = cbc.Caption
 On Error GoTo 0
 Cells(r, c + 1) = cbc.ID
 Cells(r, c + 2) = cbc.Enabled
 Cells(r, c + 3) = cbc.Visible
 Cells(r, c + 4) = cbc.Type
 On Error Resume Next
 Set cbcSubControls = cbc.Controls
 On Error GoTo 0
 If Not cbcSubControls Is Nothing Then
  For Each cbc In cbcSubControls
   Call コントロール処理(cbc, r, c + 5)
  Next
 End If
 Exit Sub
ChangeNumberFormat:
 Cells(r, c).NumberFormatLocal = "@"
 Resume 0
End Sub

  このコードの使い方は、マクロの使い方(1)標準モジュールにあります。 
44  
 
45  
 
46  
 
47  
 
48  
 
49  
 
50  
 
51  
 
52  
 
53  
 
54  
 
55  
 
56  
 
57  
 
58  
 
59  
 
60  
 


HOME  検索  索引  もくじ  関数目次  前ページへ  次ページへ

このページのTOPへ

inserted by FC2 system