Excel VBA質問箱 IV

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

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


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

【34702】VBAをA〜F列を除いて働かせるには? 無頼斎 06/2/10(金) 8:19 質問[未読]
【34712】Re:VBAをA〜F列を除いて働かせるには? inoue 06/2/10(金) 12:39 発言[未読]
【34748】Re:VBAをA〜F列を除いて働かせるには? かみちゃん 06/2/10(金) 22:20 発言[未読]
【34791】Re:VBAをA〜F列を除いて働かせるに... 無頼斎 06/2/13(月) 9:27 お礼[未読]
【34749】Re:VBAをA〜F列を除いて働かせるには? Koharubiyori 06/2/10(金) 22:24 回答[未読]
【34750】Re:VBAをA〜F列を除いて働かせるには? Koharubiyori 06/2/10(金) 22:46 発言[未読]
【34792】Re:VBAをA〜F列を除いて働かせるに... 無頼斎 06/2/13(月) 9:31 お礼[未読]

【34702】VBAをA〜F列を除いて働かせるには?
質問  無頼斎  - 06/2/10(金) 8:19 -

引用なし
パスワード
   久しぶりに質問いたします。

下はから別シートの列毎に番号を入れるとsheet1にある数値に変換する

VBAです。以前、ここでご教示いただきました。

下のコードを説明させていただきますと、

例えばSheet1のF1に"小泉"が入力されているとすると、

別のSheet2のF列に1を入力すれば"小泉"と入力されると

いう仕組みです。

Private Sub Worksheet_Change(ByVal Target As Range)

  Dim str     As String
  Dim rng     As Range

  Application.EnableEvents = False
  Application.ScreenUpdating = False
  With Worksheets("sheet1")
    For Each rng In Target
      If Val(rng.Value) > 0 Then
        str = .Cells(CLng(rng.Value), rng.Column).Value
        rng.Value = str
      End If
    Next rng
  End With
  Application.EnableEvents = True
  Application.ScreenUpdating = True

End Sub


これは別シート全部に及ぶコードなのですが、これを

A〜F列を除いた列で、働くようにしたいのですが、できますでしょうか?

何分、初心者なので、よろしくご教示くださればありがたいです

【34712】Re:VBAをA〜F列を除いて働かせるに...
発言  inoue E-MAILWEB  - 06/2/10(金) 12:39 -

引用なし
パスワード
   >A〜F列を除いた列で、働くようにしたい...
[1案]
現状の
>If Val(rng.Value) > 0 Then
のところでrng.Columnが「6」より大きいかも判断する。
※F列は番号で「6」です。

[2案]
元々の処理対象であるTargetを
一旦、Intersectメソッドを使ってGからIV列との共有セル範囲を取り直す。

【34748】Re:VBAをA〜F列を除いて働かせるに...
発言  かみちゃん  - 06/2/10(金) 22:20 -

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

>久しぶりに質問いたします。

[#34598]のご質問と何が違うのでしょうか?

【34749】Re:VBAをA〜F列を除いて働かせるに...
回答  Koharubiyori  - 06/2/10(金) 22:24 -

引用なし
パスワード
   ▼無頼斎 さん:
Private Sub Worksheet_Change(ByVal Target As Range)

  Dim str     As String
  Dim rng     As Range
If Not Application.Intersect(Range("g1:o65536"), Target) Is Nothing Then
'反応させたい行列の指定で…このサンプルはg列からo列が反応…出来るでしょう。
  Application.EnableEvents = False
  Application.ScreenUpdating = False
  With Worksheets("sheet1")
    For Each rng In Target
      If Val(rng.Value) > 0 Then

        str = .Cells(CLng(rng.Value), rng.Column).Value
        rng.Value = str
      End If
    Next rng
  End With
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End If
End Sub

【34750】Re:VBAをA〜F列を除いて働かせるに...
発言  Koharubiyori  - 06/2/10(金) 22:46 -

引用なし
パスワード
   ▼無頼斎 さん:
変更してください

If Not Application.Intersect(Range("g1:o65536"), Target) Is Nothing Then
'反応させたい行列の指定で…このサンプルはg列からo列が反応…出来るでしょう。

  上のコードより下の方がスマートですので変更して…

If Not Application.Intersect(Range("G:O"), Target) Is Nothing Then

【34791】Re:VBAをA〜F列を除いて働かせるに...
お礼  無頼斎  - 06/2/13(月) 9:27 -

引用なし
パスワード
   ご連絡遅くなり、申し訳ありませんでした。

>[#34598]のご質問と何が違うのでしょうか?

全く同じです。ご心配おかけしまして、すいません。

ただ、もとのコードを活かしてVBAを実行致したく思い、再度

ご質問した次第でございます。また、かみちゃんさんのご提示されました、

コードも利用させていただいております。ありがとうございました。

今後また、お世話になることが(150%確実です)あろうかと思います。

そのときは、よろしくご教示下さればありがたいと存知ます。

前回のご教示と併せまして、お詫びとそして感謝を申し上げたいと思います。

ありがとうございました。

【34792】Re:VBAをA〜F列を除いて働かせるに...
お礼  無頼斎  - 06/2/13(月) 9:31 -

引用なし
パスワード
   koharubiyoriさん、

無頼斎でございます。ご連絡遅れまして、申し訳ありませんでした。

ご教示を賜り、ありがとうございました!!

申し分なく、作動致しております!!

これからも、よろしくお願いいたします。

ありがとうございました。

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