質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1692閲覧

別のブックから値を貼り付ける際、全角の数字を半角に変更したい。

same_2614869

総合スコア6

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/09/27 01:16

前提・実現したいこと

現在、別のブックに入力された値を、作業用のExcelブックにコピーするというコードを作成しています。

値をそのままコピーすることはできたのですが、コピー元のファイルを確認したところ、数字に半角と全角が入り混じっていることに気づきました。
コピー先のファイルは、さらに別の作業を行う際使用するため、全角の数字が入っていると都合が悪いです。

そこで、コピーして貼り付けを行う際、全角の数字を半角に変換してから貼り付けを行うような方法がないかをお伺いしたいです。

よろしくお願いいたします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

VBA

1'コピー元から範囲指定してコピー 2 3 Range(Columns(13), Columns(15)).Copy 4 5'作業用Excelをアクティブに 6 myBook.Activate 7 ofgrSht.Activate 8 9 10'アクティブブック(作業用)に値を貼り付け 11Worksheets("作業用シート").Range(Columns(2), Columns(4)).PasteSpecial _ 12 Paste:=xlPasteValues, _ 13 Operation:=xlNone, _ 14 SkipBlanks:=False, _ 15 Transpose:=False 16'貼り付けた値に全角数字が入っていた場合、半角に置換する。 17For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row 18 Cells(i, 4) = Replace(Cells(i, 4), "0-9", "0-9") 19Next i 20

試したこと

貼り付け後に下記のようなコードを利用して全角の数字を半角にできないか試したのですが、うまくいきませんでした。
恐らく数字の指定方法が異なっているのではないかと思うですが、いかがでしょうか?
(下記のコードでも、"0-9"ではなく、"0"のように一つだけ指定すれば、置換ができました。)

For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
Cells(i, 4) = Replace(Cells(i, 4), "0-9", "0-9")
Next i

補足情報(FW/ツールのバージョンなど)

エクセルバージョン:2016

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか。

vba

1Cells(i, 4) = StrConv(Cells(i, 4), vbNarrow)

投稿2021/09/27 01:41

jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

same_2614869

2021/09/27 01:58

非常に素早い回答誠にありがとうございます。 頂いたコードを組み込み、実行しましたところ、全角数字が半角に変換されていました。 (条件には書いていませんでしたが、"7月"のように、月次の数値で"7"部分が全角になっているというものでした) StrConv、vbNarrowともに存在を全く知りませんでした。 勉強不足を痛感いたします。 非常に助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問