全てのシートにあるA列にはいっている漢字を左側に
列を挿入してそこにふりがなをふりたく、
素人なりに下記のソースを書いたんですが、
わけわからんところに挿入されるは無茶苦茶になってしまいました。
どなたか添削していただけないでしょうか?
Sub フリガナ挿入()
Dim ws As Worksheet
Dim r As Range
For Each ws In Worksheets
For Each r In Range("A1", Range("A65536").End(xlUp))
Columns("A").Insert Shift:=xlShiftToLeft
Range("A1" & r.Row).Value = Application.GetPhonetic(r)
Next
Next
End Sub
No.1ベストアンサー
- 回答日時:
色々方法があるかと思いますが、これでも動きますね。
Sub フリガナ挿入()
Dim ws As Worksheet
Dim r As Range
Dim i As Long
For Each ws In Worksheets
With ws
.Columns("A").Insert Shift:=xlShiftToLeft
For i = 1 To .Range("B65536").End(xlUp).Row
.Range("A" & i).Value = Application.GetPhonetic(.Range("B" & i))
Next i
End With
Next
End Sub
No.3
- 回答日時:
こんにちは、merlionXXです。
goo0607さんのコードをちょっと修正するとこんな感じになりますね。
Sub TEST01()
Dim ws As Worksheet
Dim r As Range
For Each ws In Worksheets
With ws '各ワークシートにおいて
.Columns("A").Insert Shift:=xlShiftToLeft 'A列の左に列を挿入
For Each r In .Range("B1", .Range("B65536").End(xlUp)) 'B列(旧A列)のデータについて
If r.Value <> "" Then '空白でなければ
.Range("A" & r.Row).Value = Application.GetPhonetic(r) '新A列にフリガナ
End If
Next r '繰り返し
End With
Next ws '繰り返し
End Sub
なお、解決した質問はちゃんと締め切ってくださいね。
http://okwave.jp/qa4733370.html
No.2
- 回答日時:
修正してみました
Sub フリガナ挿入()
Dim ws As Worksheet
Dim r As Range
For Each ws In Worksheets
ws.Columns("B").Insert Shift:=xlShiftToLeft 'シート名追加、列をB列の前に挿入に変更
For Each r In ws.Range("A1", ws.Range("A65536").End(xlUp))
'Columns("A").Insert Shift:=xlShiftToLeft 'この行は削除、上に移動
ws.Range("B" & r.Row).Value = Application.GetPhonetic(r.Value) 'シート名追加、一部修正
Next
Next
End Sub
Sheetが指定されていなかったので、指定しました
列挿入の位置が、A列、B列の間であればB列を指定しなければいけない
列挿入の実行位置が悪かったので修正
この回答への補足
ありがとうございます。
挿入する場所はA列の左になります。このサンプルですとA列の右側に挿入されます、以下のB部分をAに変更するとAのセルが空白になってしまいました。
ws.Columns("B").Insert Shift:=xlShiftToLeft 'シート名追加、列をB列の前に挿入に変更
ws.Range("B" & r.Row).Value = Application.GetPhonetic(r.Value) 'シート名追加、一部修正
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 今日の日付が過ぎたらその行を削除したい 1 2023/04/01 20:06
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) vbaで列幅について 1 2022/11/15 08:31
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
「B列が日曜の場合」C列に/...
-
エクセルで最初のスペースまで...
-
VBAで文字列を数値に変換したい
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
Excel 別ファイルに自動的に反...
-
Excel、市から登録している住所...
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
エクセルで文字が混じった数字...
-
2つのエクセルのデータを同じよ...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 同じ値を探して隣の...
-
文字を入力したら数値が自動入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル 同じ値を探して隣の...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
エクセルの項目軸を左寄せにしたい
-
Excel、市から登録している住所...
-
エクセルで、列の空欄に隣の列...
-
エクセルの表から正の数、負の...
-
エクセルの並び変えで、空白セ...
-
VBAで文字列を数値に変換したい
-
A列がない・・・A列が非表示に...
-
文字列に数字を含むセルを調べたい
-
50人を数回、グループ分けする...
おすすめ情報