• ベストアンサー

Excelの次の列取得

 Excelで、全てのカラムのデータを読み込んで、該当するデータを変換していく処理をしているのですが、行においては、数字なので1ずつ足していけばどんどん下のデータを読み込んでいく事が出来るのですが、次の列に移りたい場合、数字では無く、アルファベットを取得する事になると思いますが、その関数かまたは書き方が分かりません。  どなたかご存知の方、お知恵を貸してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.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

BackpackTaihen
質問者

お礼

あ、わかりました。 このソースはめちゃくちゃですね。 CellsとColumsがぐちゃぐちゃになってしまって…。 Excel内にDataのCountをしたカラムを作りましたので、そのDataを引っ張ってきて、Cellsで書いてみます。

BackpackTaihen
質問者

補足

 ご返答、ありがとうございます。  私の行っている処理なのですが、最初の質問の所で「全てのカラムのデータ」と書いてしまったのですが、実際は、「全ての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 ご教示、よろしくお願いします。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> 全てのカラムのデータを読み込んで、該当するデータを変換していく処理をしているのですが ということはVBAのご質問ですか? それならRange("A1")ではなく Cells(行番号,列番号)でセルを特定できます。行、列ともに数字ですよ。 VBAではなくワークシート関数のことなら OFFSET(行,列)があります。 ぜんぜんはずしていたらすみません。

BackpackTaihen
質問者

お礼

CellsとColumsがぐちゃぐちゃになってしまってました。 ありがとうございます。やってみます。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Cells(番号,番号) Cells(番号,"A").Offset(,数値)

BackpackTaihen
質問者

お礼

CellsとColumsがぐちゃぐちゃになってしまってました。 ありがとうございます。やってみます。

関連するQ&A