Excel VBA質問箱 IV

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

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


42978 / 76732 ←次へ | 前へ→

【38815】Re:同種複数コントロールのイベントをまとめて扱う方法?
回答  Kein  - 06/6/11(日) 13:54 -

引用なし
パスワード
   フォームツールバーのラベルを使えば、1つのプロシージャで処理できます。
100個も作る必要があるなら、ラベルを配置することもマクロでやってしまう
方が効率的ですが、そこで一工夫して、名前も連番でつけるようにします。↓

Sub Lbels_Add()
  Dim i As Integer
  Dim Tp As Single, Hp As Single
 
  Hp = ActiveSheet.StandardHeight
  For i = 1 To 100
   Tp = Cells(i, 1).Top
   ActiveSheet.Labels.Add(0, Tp, 50, Hp) _
   .Name = "Label " & i
  Next i
  ActiveSheet.Labels.OnAction = "Get_MyLabel"
End Sub

Sub Get_MyLabel()
  Dim x As Variant
 
  x = Application.Caller
  If VarType(x) <> 8 Then Exit Sub
  MsgBox "ラベル名 = " & x & vbLf & _
  ActiveSheet.Labels(x).Text
End Sub    

一括して削除するコード↓

Sub Del_Lbels()
  ActiveSheet.Labels.Delete
End Sub

*ラベルに付けた番号(i)によって処理を分岐したいときは、ラベルを配置した
ときのコードによって、"Label" の文字と番号の間にスペースを入れてあるので

Select Case Split(x, " ")(1)
  Case 1 To 10
   '1〜10番までのラベルをクリックしたときの処理
  Case 11 To 20

以下省略

End Select

などとすれば良いでしょう。
5 hits

【38813】同種複数コントロールのイベントをまとめて扱う方法? 西谷 さくら 06/6/11(日) 11:50 質問
【38814】Re:同種複数コントロールのイベントをま... kobasan 06/6/11(日) 12:14 発言
【38862】Re:同種複数コントロールのイベントをま... 西谷 さくら 06/6/12(月) 22:46 お礼
【38815】Re:同種複数コントロールのイベントをまと... Kein 06/6/11(日) 13:54 回答
【38861】Re:同種複数コントロールのイベントをまと... 西谷 さくら 06/6/12(月) 22:42 お礼

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