Excel VBA質問箱 IV

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

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


6208 / 13644 ツリー ←次へ | 前へ→

【46576】2つあるプログラムを一つにするにすればよいですか? たまちゃん 07/2/7(水) 3:49 質問[未読]
【46577】Re:2つあるプログラムを一つにするにすれ... かみちゃん 07/2/7(水) 7:11 発言[未読]
【46607】Re:2つあるプログラムを一つにするにすれ... たまちゃん 07/2/8(木) 3:58 お礼[未読]
【46609】Re:2つあるプログラムを一つにするにすれ... かみちゃん 07/2/8(木) 6:50 発言[未読]

【46576】2つあるプログラムを一つにするにすれば...
質問  たまちゃん  - 07/2/7(水) 3:49 -

引用なし
パスワード
   2つあるプログラムを一つにするにはどのようにプログラムを
変更すれば良いでしょうか?教えてください。


プログラム1
Private Sub Worksheet_Change(ByVal Target As Range)

<プログラム 1>

End Sub

プログラム2

Private Sub Worksheet_Change(ByVal Target As Range)

<プログラム2>

End Sub

【46577】Re:2つあるプログラムを一つにするにす...
発言  かみちゃん  - 07/2/7(水) 7:11 -

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

>2つあるプログラムを一つにするにはどのようにプログラムを
>変更すれば良いでしょうか?

意味がわかりません。
ご提示のコードは、シートモジュールに記述する
Worksheet_Changeイベントという、セルの値が変わったら動作させるコードなので
すが、これは、1つのシートモジュールにひとつしか書けません。

そのため、2つを1つにまとめるには?と聞かれても、2つはどういう処理をまと
めたいのかがわからなければ、具体的なことは書けません。
たとえば、
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 1 Then
  MsgBox "A列の値が変更されました。"
 Else
  MsgBox "A列以外の値が変更されました。"
 End If
End Sub



Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 2 Then
  MsgBox "B列の値が変更されました。"
 Else
  MsgBox "B列以外の値が変更されました。"
 End If
End Sub

というコードが1つのシートモジュールの中に記述したいのであれば、
以下のようなコードにします。

Private Sub Worksheet_Change(ByVal Target As Range)
 Select Case Target.Column
  Case 1
   MsgBox "A列の値が変更されました。"
  Case 2
   MsgBox "B列の値が変更されました。"
  Case Else
   MsgBox "A列B列以外の値が変更されました。"
 End Select
End Sub

【46607】Re:2つあるプログラムを一つにするにす...
お礼  たまちゃん  - 07/2/8(木) 3:58 -

引用なし
パスワード
   ▼かみちゃん さん:

他のサイトで教えて頂いたもので、完成できました。
色々と考えていただき、有難うございます。

>こんにちは。かみちゃん です。
>
>>2つあるプログラムを一つにするにはどのようにプログラムを
>>変更すれば良いでしょうか?
>
>意味がわかりません。
>ご提示のコードは、シートモジュールに記述する
>Worksheet_Changeイベントという、セルの値が変わったら動作させるコードなので
>すが、これは、1つのシートモジュールにひとつしか書けません。
>
>そのため、2つを1つにまとめるには?と聞かれても、2つはどういう処理をまと
>めたいのかがわからなければ、具体的なことは書けません。
>たとえば、
>Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Column = 1 Then
>  MsgBox "A列の値が変更されました。"
> Else
>  MsgBox "A列以外の値が変更されました。"
> End If
>End Sub
>
>と
>
>Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Column = 2 Then
>  MsgBox "B列の値が変更されました。"
> Else
>  MsgBox "B列以外の値が変更されました。"
> End If
>End Sub
>
>というコードが1つのシートモジュールの中に記述したいのであれば、
>以下のようなコードにします。
>
>Private Sub Worksheet_Change(ByVal Target As Range)
> Select Case Target.Column
>  Case 1
>   MsgBox "A列の値が変更されました。"
>  Case 2
>   MsgBox "B列の値が変更されました。"
>  Case Else
>   MsgBox "A列B列以外の値が変更されました。"
> End Select
>End Sub

【46609】Re:2つあるプログラムを一つにするにす...
発言  かみちゃん  - 07/2/8(木) 6:50 -

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

>他のサイトで教えて頂いたもので、完成できました。

どこで教えてもらって、どのように解決したのかぐらいは書きましょう。
http://www2.moug.net/bbs/exvba/20070207000003.htm
でも、これは「マルチポスト」で、あちらのサイトでは禁止されています。
そういう点は、ご一考いただければと思います。

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