• ベストアンサー

VBAでIF文を作成したが、もう少しまとめたい。

以下のようなVBAを作成しました。 動作に問題はないのですが、 もっと簡単にまとめることができる気がしますが、うまくできません。 何かやりかたはあるのでしょうか。 宜しくお願い致します。 If Cells(5, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(5, 1) End If If Cells(6, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(6, 1) End If If Cells(7, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(7, 1) End If If Cells(8, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(8, 1) End If If Cells(9, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(9, 1) End If If Cells(10, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(10, 1) End If

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

  • ベストアンサー
  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.3

訂正します for col = 1 to 10 If Cells(col, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(col, 1) End If next col なんてのはいかがでしょうか?

smorgas030
質問者

お礼

回答ありがとうございます。 FOR文を使えばいいのですね。 問題なく修正することができました。 ありがとうございました。

その他の回答 (3)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.4

------------------------------------------------------- If Not (Range("A5:A10").Find(Cells(1, 1), LookAt:=xlWhole) Is Nothing) Then Cells(100, 100) = Cells(1, 1) End If ------------------------------------------------------- とかで良いのかな・・・

smorgas030
質問者

お礼

回答ありがとうございます。 問題なく修正することができました。 ありがとうございました。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

for col = 1 to 10 If Cells(col, 1).Value = Cells(1, 1).Value Then Cells(100, 100).Select ActiveCell.FormulaR1C1 = Cells(col, 1) End If なんてのはいかがでしょうか?

noname#42041
noname#42041
回答No.1

Select Case を使ってみてはいかがでしょうか?

関連するQ&A

専門家に質問してみよう