Excel VBA質問箱 IV

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

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


2073 / 13645 ツリー ←次へ | 前へ→

【70171】列の各セルに対して、繰り返し処理をするには? ごん 11/10/18(火) 13:42 質問[未読]
【70182】Re:列の各セルに対して、繰り返し処理をす... UO3 11/10/18(火) 19:42 回答[未読]
【70190】Re:列の各セルに対して、繰り返し処理をす... ごん 11/10/19(水) 7:15 発言[未読]
【70183】Re:列の各セルに対して、繰り返し処理をす... UO3 11/10/18(火) 19:51 回答[未読]
【70191】Re:列の各セルに対して、繰り返し処理をす... ごん 11/10/19(水) 7:19 お礼[未読]

【70171】列の各セルに対して、繰り返し処理をする...
質問  ごん  - 11/10/18(火) 13:42 -

引用なし
パスワード
   教えていただいたコードを活用して、以下のコードを利用したいのですが、
if文でエラーが出ます。
対処方法をお教えください。


Sub Sample3_kana()
  Dim myA As Range
  Dim lCell As Range
  Dim z As Long
Dim c As Cell

  With ActiveSheet.UsedRange
    Set lCell = .Cells(.Cells.Count).Offset(, 1)
  End With

  Set myA = Range("A3", lCell)

  With myA.Columns(myA.Columns.Count)
    .Formula = "=LEN(B3)"
    .Value = .Value
  End With


  For Each c In myA.Columns(myA.Columns.Count)
    If c.Value = 8 Then c.Value = 2      ’←エラーが出る
  Next c

  Set myA = Nothing
  Set lCell = Nothing


End Sub

【70182】Re:列の各セルに対して、繰り返し処理を...
回答  UO3  - 11/10/18(火) 19:42 -

引用なし
パスワード
   ▼ごん さん:

こんばんは

>    If c.Value = 8 Then c.Value = 2      ’←エラーが出る

そうですか?

> Dim c As Cell

ここでエラーになってません?

Cell というデータ型はありません。

Dim c As Range にしてください。

【70183】Re:列の各セルに対して、繰り返し処理を...
回答  UO3  - 11/10/18(火) 19:51 -

引用なし
パスワード
   ▼ごん さん:

▼ごん さん:

> Dim c As Cell

ここでエラーになっていないとすれば、ちょっと、それは悩みますけど。

Dim c As Range に変更してください。

そこをRangeにしても、今度は、本当に
>    If c.Value = 8 Then c.Value = 2      ’←エラーが出る
エラーになりますね。

原因は

>  For Each c In myA.Columns(myA.Columns.Count)

こう書くと、c に取り出されるのは「列」になります。
なので、 c.Value つまり「列の値」というのはへんですねということでエラー。

For Each c In myA.Columns(myA.Columns.Count).Cells

このように書く必要があります。

【70190】Re:列の各セルに対して、繰り返し処理を...
発言  ごん  - 11/10/19(水) 7:15 -

引用なし
パスワード
   ▼UO3 さん:
回答ありがとうございます。
>
>> Dim c As Cell

これ消し忘れました。すみません。

【70191】Re:列の各セルに対して、繰り返し処理を...
お礼  ごん  - 11/10/19(水) 7:19 -

引用なし
パスワード
   ▼UO3 さん:
回答ありがとうございます。

ネットで調べても、特殊な表記ではないようですが、私にはなかなか馴染めないみたいです。

素直にRange(範囲)でやったほうが、私にはよさそうです。

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