Excel VBA質問箱 IV

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

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


4316 / 13646 ツリー ←次へ | 前へ→

【57356】コードで作成したボタンの名前について けにゃ 08/8/13(水) 20:40 質問[未読]
【57357】Re:コードで作成したボタンの名前について neptune 08/8/13(水) 20:53 回答[未読]
【57358】Re:コードで作成したボタンの名前について かみちゃん 08/8/13(水) 20:54 発言[未読]
【57359】Re:コードで作成したボタンの名前について マクロマン 08/8/13(水) 20:56 発言[未読]
【57360】Re:コードで作成したボタンの名前について マクロマン 08/8/13(水) 20:59 発言[未読]
【57362】Re:コードで作成したボタンの名前について けにゃ 08/8/13(水) 21:43 お礼[未読]
【57361】Re:コードで作成したボタンの名前について マクロマン 08/8/13(水) 21:04 発言[未読]
【57363】Re:コードで作成したボタンの名前について neptune 08/8/13(水) 21:55 発言[未読]
【57365】Re:コードで作成したボタンの名前について マクロマン 08/8/14(木) 9:38 発言[未読]

【57356】コードで作成したボタンの名前について
質問  けにゃ E-MAIL  - 08/8/13(水) 20:40 -

引用なし
パスワード
   お世話になります。
一つのシートに二つ(複数)のボタンをコードで配置し、
それぞれに別々の名前をつけたいのですが、思うようにできません。
今のコード(一部)は以下のとおりです。

ActiveSheet.Buttons.Add(10, 150, 100, 20).Select
Selection.OnAction = "macro_A"
ActiveSheet.Buttons.Text = "A"

ActiveSheet.Buttons.Add(10, 180, 100, 20).Select
Selection.OnAction = "macro_B"
ActiveSheet.Buttons.Text = "B"

この状態だと、二つのボタン名が両方とも"B"になります。
どうやってAとBを区別して名前をつけることができますでしょうか?

【57357】Re:コードで作成したボタンの名前について
回答  neptune  - 08/8/13(水) 20:53 -

引用なし
パスワード
   ▼けにゃ さん:
こんにちは

方法の1つです。
Sub t()
  Dim b1 As Object
  Dim b2 As Object
  
  Set b1 = ActiveSheet.Buttons.Add(10, 150, 100, 20)
  b1.OnAction = "macro_A"
  b1.Text = "A"
  
  Set b2 = ActiveSheet.Buttons.Add(10, 180, 100, 20)
  b2.OnAction = "macro_B"
  b2.Text = "B"
  
  Set b1 = Nothing
  Set b2 = Nothing
End Sub

【57358】Re:コードで作成したボタンの名前について
発言  かみちゃん  - 08/8/13(水) 20:54 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>この状態だと、二つのボタン名が両方とも"B"になります。
>どうやってAとBを区別して名前をつけることができますでしょうか?

ActiveSheet.Buttons.
の代わりに、
Selection.
としたらいかがでしょうか?

ActiveSheet.Buttons.
では、アクティブシートのすべてのボタンという意味になります。

【57359】Re:コードで作成したボタンの名前について
発言  マクロマン  - 08/8/13(水) 20:56 -

引用なし
パスワード
   とりあえず、

ActiveSheet.Buttons

Selection

でいけます。
>ActiveSheet.Buttons
アクティブシートの全てのButton
ということなので、全てのButtonのText
が"A"になってしまったのです。

【57360】Re:コードで作成したボタンの名前について
発言  マクロマン  - 08/8/13(水) 20:59 -

引用なし
パスワード
   もろかぶり・・・。
かみちゃんさん失礼しました。

【57361】Re:コードで作成したボタンの名前について
発言  マクロマン  - 08/8/13(水) 21:04 -

引用なし
パスワード
   Neptuneさんのコードをパクッてみました。

Option Explicit

Sub tt()
  Dim b1 As Object
  Dim b2 As Object
 
  Set b1 = ActiveSheet.Buttons.Add(10, 150, 100, 20)
  b1.OnAction = "macro_A"
  b1.Text = "A"
 
  Set b2 = b1.Duplicate
  With b2
   .Top = .Top + 30
   .OnAction = "macro_B"
   .Text = "B"
  End With
 
  Set b1 = Nothing
  Set b2 = Nothing
End Sub

【57362】Re:コードで作成したボタンの名前について
お礼  けにゃ E-MAIL  - 08/8/13(水) 21:43 -

引用なし
パスワード
   >neptuneさん
>かみちゃんさん
>マクロマンさん
ご回答ありがとうございました。
お陰様で光が見えてきましたw

【57363】Re:コードで作成したボタンの名前について
発言  neptune  - 08/8/13(水) 21:55 -

引用なし
パスワード
   ▼マクロマン さん:
こんにちは

別にこだわっては無いんですが、長年neptuneでやってますんで、
小文字の方がしっくりときます。^ ^;

Duplicateってのがあるんですね。知りませんでした。これは楽チンですね。

【57365】Re:コードで作成したボタンの名前について
発言  マクロマン  - 08/8/14(木) 9:38 -

引用なし
パスワード
   失礼しました。
頭文字は小文字でした。

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