
エクセルにお強い方、教えてください><
A1のセルに、
山田 花子(ヤマダ ハナコ)
とあるとします。
私は
B1のセルに
山田 花子
C1のセルに
(ヤマダ ハナコ)
と、分けてデータ化させたいのですが、
どのようにマクロを組めばよいでしょうか?
また、分け終わったC1の(ヤマダ ハナコ)に
置換を使って( )をとって、
カナ を かな に直すため、
PHONETICと書式のふりがな機能を使って直しても
データにエラーは起きずに処理できるでしょうか?
最終的なデータとして
A1セル→山田 花子(やまだ はなこ)
B1セル→山田 花子
C1セル→やまだ はなこ
としたいのです。
ご存知の方いらっしゃいましたら、教えてください。
宜しくお願い致します。
No.5ベストアンサー
- 回答日時:
No.3です!
たびたびごめんなさい。
C列がカタカナの場合はひらがなに直さないといけなかったのですね?
もう一度コードを載せておきます。
Sub test()
Dim i As Long
Dim buf As String
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
buf = WorksheetFunction.Substitute(WorksheetFunction.Substitute _
(Cells(i, 1), "(", "("), ")", ")")
With Cells(i, 2)
.Value = Mid(buf, 1, WorksheetFunction.Find("(", buf) - 1)
.Offset(, 1) = Mid(buf, WorksheetFunction.Find _
("(", buf) + 1, Len(buf) - Len(Cells(i, 2)) - 2)
.Offset(, 2) = StrConv(Cells(i, 3), vbHiragana)
End With
Next i
Columns(3).Delete (xlToLeft)
Columns("A:C").AutoFit
End Sub
こんな感じではどうでしょうか?
何度も失礼しました。m(__)m
No.7
- 回答日時:
A1に山田花子とありB列に=A1&"("&PHONETIC(A1)&")"と入って、山田 花子(ヤマダ ハナコ)となっているので「ない」場合を考える。
こういう場合もあるということ。ーー
?1に山田 花子(ヤマダ ハナコ)とある場合は、データー区切り位置ーその他で( 左カッコ を指定ー完了
で出来る。
)は置換で抹消する。
これが一番簡単で安定。さらにB列で)で区切り位置にしても良い。
マクロの記録をすれば、VBAコードはわかる。
複数行分もはじめ範囲指定して始めれば良い。
ーー
VBAでReplaseやInstr関数でやる手もあるが、関数などでやるのが良かろう。VBAの勉強をしているのですか。
1回限りの作業のようだし、VBAを使うまでも無いだろう。
エクセルに強い方でなくても出来ることだ。
No.6
- 回答日時:
『山田 花子(ヤマダ ハナコ)』
VBAでは
この文字数分(=14)ループしてもできる話です。
区切り分けたり、(括弧)を削除したり、かなに変えたり、
とすべてを処理しながらB列やC列の編集をする。
No.3
- 回答日時:
こんばんは!
関数の方が簡単なような気がしますが、VBAをご希望のようなので・・・
一例です。
(単に関数でやる方法をコードにしただけです)
A列のデータは1行目からあり、必ず( )があるという前提です。
Sub test()
Dim i As Long
Dim buf As String
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
buf = WorksheetFunction.Substitute(WorksheetFunction.Substitute _
(Cells(i, 1), "(", "("), ")", ")")
With Cells(i, 2)
.Value = Mid(buf, 1, WorksheetFunction.Find("(", buf) - 1)
.Offset(, 1) = Mid(buf, WorksheetFunction.Find _
("(", buf) + 1, Len(buf) - Len(Cells(i, 2)) - 2)
End With
Next i
Columns("A:C").AutoFit
End Sub
こんな感じではどうでしょうか?m(__)m
No.1
- 回答日時:
Sub Macro1()
Dim r As Long
r = Range("A65536").End(xlUp).Row
Range("A1:A" & r).Replace what:=")", replacement:="", matchbyte:=False
Range("A1:A" & r).Replace what:="(", replacement:="(", matchbyte:=False
Range("A1:A" & r).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
Other:=True, OtherChar:="(", FieldInfo:=Array(Array(1, 1), Array(2, 1))
Range("B:B").Phonetics.CharacterType = xlHiragana
Range("C1:C" & r).Formula = "=PHONETIC(B1)"
Range("A:A").Insert
Range("A1:A" & r).Formula = "=B1&""(""&D1&"")"""
Range("A1:D" & r).Value = Range("A1:D" & r).Value
Range("C:C").Delete
Range("A:C").EntireColumn.AutoFit
End Sub
#要らないループ処理は省いているので,見た目なんだかべたべたですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
漢字説明
-
関係ないから~♪関係ないから~...
-
田中美佐子の旦那さんって、誰...
-
名字が漢字で名前がひらがなの...
-
朝の情報番組、スッキリの天の...
-
オーバーオールの似合う芸能人...
-
ファンが有名人に「一緒に写真...
-
ジョビジョバ
-
お笑いをやりたい
-
女芸人さんが面白くない(と言...
-
水芸のしくみを教えてください
-
みなさまへ。
-
矢口真里、再婚! 美川憲一の2...
-
小嶋美紅
-
英語なまりの双子がいるトリオ...
-
平祐奈より嫌いなタレントは誰...
-
リットン調査団って大阪で人気...
-
なぜ女性の芸人は面白くないのか
-
何度もすみません。90年代生ま...
-
吉本興業とジャニーズ事務所の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報