• ベストアンサー

エクセルVBA 文字数指定で置換

Excel VBA で、 (1) Sheet1のA1:A9の各文字列の3文字目から2文字を   Sheet2のB1の文字列(bb)に変換する。 (2) Sheet1のA1:A9の各文字列の5文字目から2文字を   Sheet2のC1の文字列(cc)に変換する。 とするには、どのようにしたら良いでしょうか?

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

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

> Sheet2のB1の文字列(bb)に変換する。 > Sheet2のC1の文字列(cc)に変換する。 この意味がよくわからないのですが、それぞれB1とC1につなげて表示するんでしょうか? Sub test01() Set sh1 = Sheets("Sheet1") Set sh2 = Sheets("Sheet2") On Error Resume Next For r = 1 To 9 St1 = St1 & Mid(sh1.Cells(r, 1), 3, 2) St2 = St2 & Mid(sh1.Cells(r, 1), 5, 2) Next On Error GoTo 0 sh2.Cells(1, "B") = St1 sh2.Cells(1, "C") = St2 End Sub

その他の回答 (1)

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

(1)下記。(2)も同様。 元の文字列の長さが足りないときのエラー処理も必要か。 Sub Macro2() Set sh1 = ActiveWorkbook.Sheets("Sheet1") Set sh2 = ActiveWorkbook.Sheets("Sheet2") For r = 1 To 9 sh1str = sh1.Cells(r, 1) Mid(sh1str, 3, 2) = sh2.Cells(1, 2) sh1.Cells(r, 1) = sh1str Next End Sub

azure__
質問者

お礼

そのまま貼り付けたら上手くいきました。 ありがとうございました。

関連するQ&A