|
うーん…?よくわかりませんがとりあえず言われるがままに作ってみました。
(こんなんでいいのかな?でも言われたとーりだと思うけど)
Sub サンプル1()
Dim 最終行 As Long
Dim 処理行 As Long
Dim 文字列 As String
Dim 左側の文字列 As String
Dim 設定列 As Long
Dim 設定内容 As String
Dim i As Long
'1.A65536セルでCtrl+↑として位置付く行番号取得する。
最終行 = Range("A65536").End(xlUp).Row
'2.1行目〜最終行まで処理する。
For 処理行 = 1 To 最終行
'3.処理行のA列の内容を取得する。
文字列 = Cells(処理行, "A").Value
設定列 = 1
'4.3で取得した文字列がなくなるまで処理を繰り返す。
' (Do〜Loopの中で空白ごとに分割する処理を行う)
Do Until 文字列 = ""
'5.function文字列分割処理に文字列を渡して空白で区切った
' 左辺を「左側の文字列」に受け取る。
左側の文字列 = 文字列分割処理(文字列, " ")
'6.セルに設定するための内容を保持する変数「設定内容」をいったん
' ここでクリアしておく。
設定内容 = ""
'7.5で受け取った左側の文字列の文字の個数分処理を繰り返す。
For i = 1 To Len(左側の文字列)
If i = 1 Then
'8.最初の1回目はイコールを頭につける。
設定内容 = "="
Else
'9.2回目からはアンドで繋ぐ。
設定内容 = 設定内容 & "&"
End If
'10.左側の文字列を1文字づつダブルクォーテーションで囲む。
設定内容 = 設定内容 & """" & Mid(左側の文字列, i, 1) & """"
Next
'11.設定先の列を一つカウントアップ(1つ右の列へ)
設定列 = 設定列 + 1
'12.8〜10で蓄えた内容をセルに設定する。
Cells(処理行, 設定列).Value = 設定内容
Loop
Next
MsgBox "おしまい"
End Sub
Function 文字列分割処理(文字列 As String, 区切り文字 As String) As String
Dim 発見位置 As Long
'13.文字列中の何桁目に区切り文字があるか調べる。
発見位置 = InStr(文字列, 区切り文字)
If 発見位置 = 0 Then
'14.無い場合。文字列丸ごとを左辺として返す。
文字列分割処理 = 文字列
文字列 = ""
Else
'15.あった場合。区切り文字の左辺を戻り値とし、右辺を文字列に戻す。
文字列分割処理 = Left(文字列, 発見位置 - 1)
文字列 = Mid(文字列, 発見位置 + Len(区切り文字))
End If
End Function
Sub 文字列分割処理のテスト用()
Dim 処理前の文字列 As String
Dim 処理後の文字列 As String
Dim 左側の文字列 As String
処理前の文字列 = "日本 アメリカ"
処理後の文字列 = 処理前の文字列
左側の文字列 = 文字列分割処理(処理後の文字列, " ")
MsgBox "処理前の文字列=(" & 処理前の文字列 & ")" & vbCrLf & _
"↓" & vbCrLf & "左側の文字列=(" & 左側の文字列 & ")" & vbCrLf & _
"処理後の文字列=(" & 処理後の文字列 & ")"
End Sub
|
|