
エクセルシートの全角の英数字を一括で半角に変換するVBAをNETで見つけたのですが、このVBAを他のエクセルでも使えるようにしようと思い、下記のコードを「個人用Book」にコピペしたのですが、処理途中でハングアップしてしまいます。
どこを修正すれば良いのか教えてください。
'■Activeブックのすべてのシートの「全角カタカナ」を「半角カタカナ」にする。
Public Sub Call_value_half_to_full()
Dim ws As Worksheet
Dim rng As Range
For Each ws In ActiveWorkbook.Worksheets
If ws.Visible = True Then
For Each rng In ActiveSheet.UsedRange
'■全角カタカナを半角カタカナにする 全角カタカナに変換したい場合はvbWide
rng.Value = StrConv(rng.Value, vbNarrow)
Next
End If
Next ws
End Sub
No.3ベストアンサー
- 回答日時:
こんにちは。
For Each rng In ActiveSheet.UsedRange
は
For Each rng In ws.UsedRange
がまずポイント。
問題点は、記号やカタカナなども全て半角になってしまうこと。
よくあるのは英数のみ半角化でしょうか。
その場合は、正規表現を使う必要があります。
ご提示のソースで、UsedRange はシート内の使用済みセル全てを対象としますから、データがそれなりにあるシートだと時間はかかるでしょうねぇ、、
時間短縮には工夫か必要で、1度配列にセルの内容を読み込んで、その配列内を同様に半角化処理、ついでセルに書き戻す様にします。
ご回答ありがとございます。
ご回答の
>For Each rng In ws.UsedRange
を試してみたのですが、最初はうまく行くのですが、何度か違うファイルで試すとエラーになってしまいます。
他にどこか修正すべき箇所があるのでしょうか?
カタカナも半角に統一したいのでこのコードが使えるとありがたいのですが。
No.1
- 回答日時:
こんにちは
Public Sub Call_value_half_to_full() は
どのように呼んでいる(実行している)のでしょう
ActiveWorkbookは1つです
プロシージャに引数などを加えて、明示的にブックを特定するなどしてみては?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) vba シート名の一覧を2列に分けるには 5 2023/04/24 08:56
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ハイフン(-)が長音(ー)
-
UTF-8 と SHIFT-JIS について
-
更新クエリで半角カタカナのみ...
-
Excelのプルダウンで2列分の情...
-
ExcelVBAを使って、値...
-
Excelで指定した日付から過去の...
-
VB.NETで DataRow()を利用して...
-
テキストボックスのvalueとtext...
-
[エクセル]連続する指定範囲か...
-
VBAでActiveDirectoryのユーザ...
-
Accessのクエリで、replace関数...
-
select文の戻り値を変数に格納...
-
エクセルで、絶対値の平均を算...
-
VBA実行後に元のセルに戻りたい
-
Excelのセルの色指定をVBAから...
-
VBからEXCELのセルの値を取得す...
-
DataGridViewの各セル幅を自由...
-
i=cells(Rows.Count, 1)とi=cel...
-
利用者側のMACアドレスを取得し...
-
Excel vbaで特定の文字以外が入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
長音「ー」とマイナス「-」の...
-
更新クエリで半角カタカナのみ...
-
ハイフン(-)が長音(ー)
-
UTF-8 と SHIFT-JIS について
-
Excelで文字の長さを揃えるには
-
特定の列の値を、ひらがな・漢...
-
「ー」←これは伸ばし棒ですか?...
-
エクセル2016 条件付き書式で全...
-
エクセルシート中の全角英数字...
-
アクセスのLENBとエクセルのLEN...
-
掲示板に書き込む文字の半角/全...
-
Outlookの連絡先のフリガナを半...
-
Wordの日本語全角文字・半角カ...
-
ExcelVBAを使って、値...
-
VB.NETで DataRow()を利用して...
-
Excelで指定した日付から過去の...
-
i=cells(Rows.Count, 1)とi=cel...
-
Accessのクエリで、replace関数...
-
テキストボックスのvalueとtext...
-
【Excel VBA】指定行以降をクリ...
おすすめ情報