- ベストアンサー
エクセルVBA 文字数指定で置換
Excel VBA で、 (1) Sheet1のA1:A9の各文字列の3文字目から2文字を Sheet2のB1の文字列(bb)に変換する。 (2) Sheet1のA1:A9の各文字列の5文字目から2文字を Sheet2のC1の文字列(cc)に変換する。 とするには、どのようにしたら良いでしょうか?
- みんなの回答 (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)
(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
お礼
そのまま貼り付けたら上手くいきました。 ありがとうございました。