Excel VBA質問箱 IV

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

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


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

【60541】シート別に同じ動作を Ponta 09/2/27(金) 7:36 質問[未読]
【60544】Re:シート別に同じ動作を Abebobo 09/2/27(金) 9:30 発言[未読]
【60546】Re:シート別に同じ動作を ss 09/2/27(金) 10:28 回答[未読]
【60553】Re:シート別に同じ動作を Ponta 09/2/27(金) 21:53 質問[未読]
【60572】Re:シート別に同じ動作を つん 09/3/2(月) 17:52 回答[未読]

【60541】シート別に同じ動作を
質問  Ponta  - 09/2/27(金) 7:36 -

引用なし
パスワード
   シート1から7まで1シートごとに同じマクロを動作させるのですが、すべて
同じコードを書かずに、一箇所でシート7枚に転用することが出来る方法が
有りましたら教えてください。
具体的には
クラス単位(この場合7クラス)、A〜Gクラスにそれぞれ同じコードで
動作させるため、個別にコードを作成していますが
シートAのコマンドボタンを押せばシートA(With Sheet("A"))の動作に
つながり、シートBのコマンドはシートBの…後の動作(コード)は同じ
です。
このような事で出来ますか?アドバイスお願いします。

【60544】Re:シート別に同じ動作を
発言  Abebobo  - 09/2/27(金) 9:30 -

引用なし
パスワード
   Sub test2()
Dim Sh  As Worksheet
For Each Sh In ThisWorkbook.Worksheets
 With Sh
  .Range("A1").Value = .Name
 End With
Next Sh
End Sub

上記のように For Each を使ってみてはどうでしょう。
*新規ブックで試してみて下さい

【60546】Re:シート別に同じ動作を
回答  ss  - 09/2/27(金) 10:28 -

引用なし
パスワード
   ▼Ponta さん:
>シートAのコマンドボタンを押せばシートA(With Sheet("A"))の動作に
>つながり、シートBのコマンドはシートBの…後の動作(コード)は同じ
>です。
1)各シートにコマンドボタンが有る
2)ボタンを押すとボタンがあるシートの処理
ですか?・・・With ActiveSheetでいいのかな?

【60553】Re:シート別に同じ動作を
質問  Ponta  - 09/2/27(金) 21:53 -

引用なし
パスワード
   ▼Abebobo さん、ss さん:

アドバイス有難うございました。
説明が美味く表現できず、ご迷惑をおかけしたと思います。
でもイメージはそのような感じです。

お二人のアドバイスで、私なりに、したい事をコードにしました…
もっとスマートなコードがありましたら、よろしくお願いします。

Sub 開いているシートから()  'シート単位のコード
With ActiveSheet
 Call AA
End With
End Sub

'リンク先が
 Sub AA()          '共通のコード
   Dim myR As Range
   With ActiveSheet
      Set myR = .Range("A2").CurrentRegion
       ':
       ':
   End With
 End Sub

よろしくお願いします。

【60572】Re:シート別に同じ動作を
回答  つん  - 09/3/2(月) 17:52 -

引用なし
パスワード
   ▼Ponta さん
こんにちは。
横から失礼します。

えーと

1)各シートにコマンドボタンが配置されている
2)そのボタンを押したら、共通の処理が、そのシートに対して行われる

ってことですよね?
でしたら、

コマンドボタンのクリックイベント
(コントロールツールボックスのコマンドボタンを使ってるとして)

Private Sub cmdSheet1_Click()
  Call test
End Sub

共通処理

Sub test()

  With ActiveSheet
    処理 処理 処理
  End With

End Sub

で、ええんではないでしょうか?


長いことVBAから離れていて、ほとんど初心者です^^;
アホな回答してたらすんません(>_<)
(皆様、お久しゅう・・・って、言って誰が覚えてくれてるんだろう?
 谷さんに「あんた誰?」って言われたらショックやなあ・・・)

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