- ベストアンサー
Excelの次の列取得
Excelで、全てのカラムのデータを読み込んで、該当するデータを変換していく処理をしているのですが、行においては、数字なので1ずつ足していけばどんどん下のデータを読み込んでいく事が出来るのですが、次の列に移りたい場合、数字では無く、アルファベットを取得する事になると思いますが、その関数かまたは書き方が分かりません。 どなたかご存知の方、お知恵を貸してください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VBAでということでしょうか? A1:Z200が対象なら Sub HENKAN() Dim Ri,Ci As Integer For Ci = 1 to 26 'A列からZ列 For Ri = 1 to 200 '1行から200行 If Worksheets("Sheet1").Cells(Ri,Ci).Value = 条件 Then 処理内容 End If Next Ri Next Ci End Sub
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
回答No.2
> 全てのカラムのデータを読み込んで、該当するデータを変換していく処理をしているのですが ということはVBAのご質問ですか? それならRange("A1")ではなく Cells(行番号,列番号)でセルを特定できます。行、列ともに数字ですよ。 VBAではなくワークシート関数のことなら OFFSET(行,列)があります。 ぜんぜんはずしていたらすみません。
質問者
お礼
CellsとColumsがぐちゃぐちゃになってしまってました。 ありがとうございます。やってみます。
- hana-hana3
- ベストアンサー率31% (4940/15541)
回答No.1
Cells(番号,番号) Cells(番号,"A").Offset(,数値)
質問者
お礼
CellsとColumsがぐちゃぐちゃになってしまってました。 ありがとうございます。やってみます。
お礼
あ、わかりました。 このソースはめちゃくちゃですね。 CellsとColumsがぐちゃぐちゃになってしまって…。 Excel内にDataのCountをしたカラムを作りましたので、そのDataを引っ張ってきて、Cellsで書いてみます。
補足
ご返答、ありがとうございます。 私の行っている処理なのですが、最初の質問の所で「全てのカラムのデータ」と書いてしまったのですが、実際は、「全てのDataが入力されているカラムのデータ」でありました。ごめんなさい。(><) 1列のDataの読み込みをするときに、条件に合致したカラムに"●"を挿入していき、「その列に"●"というDataが2個以上ついた時点で次の列に行く」という処理がしたい為、以下のような処理を例にならって書いてみました。 その時に、やはり列を示す"Ri"が数字だとエラーとなって帰ってきてしまいますが、どのようにしたらよろしいでしょうか? Dim Ri, Ci As Integer For Ci = 2 To 21 For Ri = 5 To 20 If Sheets("Touban").Cells(g & "," & r).Value = ○ Then '可 If Sheets("Touban").Columns("Z" & ":" & Ri).Value <= 2 & _ Sheets("Touban").Columns(Ci & ":" & 28).Value <= 2 Then Sheets("Touban").Cells(g & "," & r).Value = ● Else End If ElseIf Sheets("Touban").Cells(g & "," & r).Value = △ Then 'どちらでも可 If Sheets("Touban").Columns("Z" & ":" & Ri).Value <= 2 & _ Sheets("Touban").Columns(Ci & ":" & 28).Value <= 2 Then Sheets("Touban").Cells(g & "," & r).Value = ● Else End If ElseIf Sheets("Touban").Cells(g & "," & r).Value = ◆ Then '不可 Else End If Next Ri Next Ci ご教示、よろしくお願いします。