Excel VBA質問箱 IV

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

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


5848 / 13645 ツリー ←次へ | 前へ→

【48563】マクロボタンの名前を変数にしたい ユニフ 07/4/22(日) 19:25 質問[未読]
【48564】Re:マクロボタンの名前を変数にしたい ichinose 07/4/22(日) 19:32 発言[未読]
【48565】Re:マクロボタンの名前を変数にしたい ユニフ 07/4/22(日) 19:42 発言[未読]
【48566】Re:マクロボタンの名前を変数にしたい ichinose 07/4/22(日) 20:16 発言[未読]
【48567】題名を間違えました ユニフ 07/4/22(日) 20:58 発言[未読]
【48568】うまくいきました。 ユニフ 07/4/22(日) 21:08 お礼[未読]

【48563】マクロボタンの名前を変数にしたい
質問  ユニフ  - 07/4/22(日) 19:25 -

引用なし
パスワード
   皆様こんばんは
下記のコードを使って印刷をまとめて行いたいと考えています。
コードをなるべく短くしたいのでFor文を使おう考え
マクロボタンの名前の1~8の部分を変数扱いできないかと思ったのですが
やはりダメでした。

Dim Ins As Integer
For Ins = 0 To 7

If Cells(3 + Ins, 9) = 1 Then
Application.Run "実験シート5.xls!封筒入力1+Ins"
  End If
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  Next Ins

マクロボタンは"封筒入力1"~"封筒入力8"までの8個あります。
この1〜8の部分を変数扱いできないものでしょうか?

よろしくお願いします。

【48564】Re:マクロボタンの名前を変数にしたい
発言  ichinose  - 07/4/22(日) 19:32 -

引用なし
パスワード
   ▼ユニフ さん:
こんばんは。

>下記のコードを使って印刷をまとめて行いたいと考えています。
>コードをなるべく短くしたいのでFor文を使おう考え
>マクロボタンの名前の1~8の部分を変数扱いできないかと思ったのですが

まず、このマクロボタンと称されているボタンについての
説明からしてください。

VBAには、ボタンと呼ばれるオブジェクトはいくつもあります。

・xxxxxxxxxxx
・yyyyyyyyyyy

こういう手順でさくせいするボタンのことです

とういようにです。

【48565】Re:マクロボタンの名前を変数にしたい
発言  ユニフ  - 07/4/22(日) 19:42 -

引用なし
パスワード
   失礼しました。

>・xxxxxxxxxxx
>・yyyyyyyyyyy

↑という書き方はわからないのですが、

ツール ユーザー設定 コマンド フォーム で出てくる
ボタンで作っています。

【48566】Re:マクロボタンの名前を変数にしたい
発言  ichinose  - 07/4/22(日) 20:16 -

引用なし
パスワード
   ▼ユニフ さん:
>失礼しました。
>
>>・xxxxxxxxxxx
>>・yyyyyyyyyyy
>
>↑という書き方はわからないのですが、
つまり、誰がみてもオブジェクトを特定できるように
作成手順を箇条書きに記述してほしかったのです。


>ツール ユーザー設定 コマンド フォーム で出てくる
>ボタンで作っています。
このように形容してもらえばわかります。


新規ブックの標準モジュールに

'===========================================================
Sub test1()
  Dim idx As Long
  With ActiveSheet.Buttons
    For idx = 0 To 7
     With .Add(100, 30 + 30 * idx, 60, 20)
       .Name = "封筒入力" & idx + 1
       .Caption = "ボタン" & idx + 1
       End With
     Next
    End With
End Sub
'===================================================================
Sub test2()
  Dim idx As Long
  With ActiveSheet
    For idx = 0 To 7
     With .Buttons("封筒入力" & idx + 1)
       MsgBox .Caption
       End With
     Next
    End With
End Sub

test1で 封筒入力1から封筒入力8という名前を付けたボタンを
作成します。

test2では、
作成した封筒入力1から封筒入力8のボタンのCaption(表示テキスト)を
Buttonsコレクションを使用して、表示しています。


これは、変数を使うという方法ではありませんが、
こういうことが知りたいのではないですか?

【48567】題名を間違えました
発言  ユニフ  - 07/4/22(日) 20:58 -

引用なし
パスワード
   ichinose さんレスあるがとうございます。

test1とtest2を試して勘違いに気が付きました。

>これは、変数を使うという方法ではありませんが、
>こういうことが知りたいのではないですか?

マクロボタンの名前は単に入力1〜入力8にしてあります。
変数扱いしたい封筒入力1〜8はマクロ名でした。
("封筒入力" & idx + 1)のように記述すればできるのでしょうか。
ちょっと試してみます。

【48568】うまくいきました。
お礼  ユニフ  - 07/4/22(日) 21:08 -

引用なし
パスワード
   以下のコードでうまくいきました。

Dim Ins As Integer

For Ins = 0 To 7

If Cells(3 + Ins, 9) = 1 Then
Application.Run ("実験シート5.xls!封筒入力" & Ins + 1)
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  End If
  Next Ins
  
  
End Sub


ichinoseさん、アドバイスありがとうございました。

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