
エクセルにお強い方、教えてください><
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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセル、関数でセル内の半角カタカナ漢字、を分けて他のセルへ表示する方法
Excel(エクセル)
-
EXCELで、漢字のみ抽出する式を教えてください。
Excel(エクセル)
-
エクセルでセルの中身が漢字かどうか識別する方法は?
Excel(エクセル)
-
4
エクセルでアルファベットと日本語の文字列を分割する方法
Excel(エクセル)
-
5
Excel2007でカタカナの文字のみを抽出、表示するには?
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
関西弁はなぜ人を不快にさせる...
-
5
吉本芸人さんの出待ち
-
6
関係ないから~♪関係ないから~...
-
7
話の最後に言う「チーン」
-
8
テレビのMCに対する疑問です
-
9
MBSのごぶごぶで収録日はいつな...
-
10
エクセル・1つのセルに入った...
-
11
キム・ニールヤングさんはタレ...
-
12
男の176cmは高身長とは呼べませ...
-
13
ふぉい父親 ふぉい母親 ふぉい
-
14
名字が漢字で名前がひらがなの...
-
15
修道士の呼び方についてですが...
-
16
シントンシャンテンタンって?
-
17
マメを連呼するCMがありました...
-
18
近くに住んでいる芸能人います?
-
19
ファンが有名人に「一緒に写真...
-
20
「二瓶」という姓について
おすすめ情報
公式facebook
公式twitter