• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ抽出について教えて下さい。)

データ抽出についての質問

このQ&Aのポイント
  • 以前の質問で作成されたマクロが行と列の挿入に対応していないため、機能しなくなってしまいました。
  • セルに入力されたデータを指定の形式に変換するために、関数またはマクロを使用する方法について教えてください。
  • 新しいデータのセルに対応するようにマクロを修正する方法が分からないので、助けていただけると助かります。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

#1です。 >Mid(Cells(i, 2).Value, ii, 2) は Mid(Cells(i, 2).Value, ii, 1) でしょうね。 CellsプロパティとMid関数を一緒にしちゃってます。 ii,1 の1は1文字を選んでいる(判定のために)だけで、A列という意味ではないですよ。 Mid(string, start[, length]) string:文字列を指定。(この場合Cells(i,2).Value) start:文字列の何文字目かを指定。(この場合iiで決まる) length:取り出す文字数を指定。(この場合1文字ずつ判定する必要があるので1) ~VBAヘルプを参照~

08517502
質問者

お礼

わぁ!出来ました。 重ね重ねご迷惑をおかけしました。 ありがとうございました。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Cells(行番号,列番号) ですから、 Cells(i,1) の時は1列目(A列)のi行目となります。 B列にしたい場合は、 Cells(i,2) で2列目(B列)のi行目となります。 あとは範囲で"a65536"が"b65536"となる。 こんな感じではないかと。

08517502
質問者

補足

n-jun様 ご回答ありがとうございます。 Sub test() Dim i, ii, iii Dim a As String For i = 1 To Range("b65536").End(xlUp).Row b = "" iii = 0 For ii = 1 To Len(Cells(i, 2).Value) If IsNumeric(Mid(Cells(i, 2).Value, ii, 2)) Or Mid(Cells(i, 2).Value, ii, 2) = "." Then b = b & Mid(Cells(i, 2).Value, ii, 2) ElseIf b <> "" Then Cells(i, 2).Offset(, iii).Value = b b = "" iii = iii + 1 End If If iii = 3 Then Exit For Next ii Next i End Sub と訂正しましたところ、うまくいきませんでした。 どこが出来ていないのでしょう… お忙しい中申し訳ありませんが、ご指摘お願いします。

関連するQ&A