• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelのマクロで作りたい)

Excelのマクロで数値を文字列として認識させる方法

このQ&Aのポイント
  • エクセル上で数値が文字列として認識されてしまう問題を解決するために、マクロを使用する方法をご紹介します。エクスポートしたデータを貼り付けて文字列として認識されているセルを選択し、F2キーを押してセルを編集します。バックスペースキーを2回押して数値を削除し、Enterキーを押すことで数値が正しく認識されます。この手順をマクロに記録し、任意のセルでマクロを実行することで問題を解決することができます。
  • Excelのマクロを使用して、数値を文字列として認識させる方法を説明します。まず、エクスポートしたデータをエクセルに貼り付けます。数値が文字列として認識されているセルを選択し、F2キーを押してセルを編集します。バックスペースキーを2回押して数値を削除し、Enterキーを押すことで数値が正しく認識されます。この手順をマクロに記録し、任意のセルでマクロを実行することで同じ操作を簡単に行うことができます。
  • Excelのマクロを使用して、数値を文字列として認識させる方法をご紹介します。エクスポートしたデータをエクセルに貼り付けた後、数値が文字列として認識されているセルを選択します。F2キーを押してセルを編集し、バックスペースキーを2回押して数値を削除します。最後にEnterキーを押すことで、数値が正しく認識されます。マクロにこの操作を記録し、任意のセルでマクロを実行することで、数値を文字列として認識させることができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#01です >しかも改行されていて2行ある状態になっています。 ここを見落としていました この意味がよく分かりませんし、実際の改行コードが分からないのですが If Right(r.Value, 2) = "'" & Chr(10) & "'" Then のようにすればいけると思います でもエディタで開けるファイルならエディタで文字列置換してエクセルに読み込む方が簡単かもしれませんよ。

PACMAN1973
質問者

お礼

返信が遅くなって申し訳ありませんでした。 おかげさまでマクロ作れました。 ありがとうございました~

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

>エクセルにデータをエクスポートしたら 察するに、データは、多分CSVファイルのことでしょう。 CSVファイルの名も出てこない方が、VBAでというのもどうかなと思いますが。 ーー CSVファイルを吐き出した業務のフィ-ルド定義が、文字列となっているのでしょう。そこへ数字文字列を入れたのでは。約束違反です。 ーー CSVファイルは歴史的に3通りができていて、標準は、文字列は””で囲む。数字は””で囲まず、カンマの区切りは初めと終わりにあるというのが多い。文字列と言う約束のフィールドに数字を入れたので混乱しているのでしょう。 あと2つは””で文字列も囲まないのと、数値も囲むという型。 ーー (1)CSVファイルの時に、問題の項目の””をはずしてしまう (もちろんプログラムが必要)数が多くなければエディターで人手で直せる。 (2)エクセルの表に入ってくるときに書式を適用し、変える方法。 (3)エクセルの列のセルに入ってきて、そこで数値化する方法 とありそう。 (3)が一番手軽でしょう。 ーー (3)で Sub test01() Cells(1, "B") = Val(Replace(Cells(1, "A"), """", "")) 'A Cells(2, "B") = Val(Cells(2, "A")) 'B End Sub のAかBで、数値化がうまくいったなら ーー Aのケースなら Sub test02() d = Range("A65536").End(xlUp).Row For i = 1 To d Cells(i, "B") = Val(Replace(Cells(i, "A"), """", "")) Next i End Sub を実行する。A列になっているが、問題の列で”A”の箇所を変える。 ーー BのケースならBの行に置き換えて、上記を実行する。 ーー 最後にデーター外部データの取り込みーデータの取り込みでやり マクロの記録をとり、どこを変えたらよいか、良く勉強すること。 多分上記の(2)の方法。 課題丸投げですよ。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

文字列の数字を数値化する方法 その1:空白または0と入力されたセルをコピー 数字の範囲を選択して、「編集」「形式を選択して貼り付け」「値」と「加算」でOK その2:1と入力されたセルをコピー 数字の範囲を選択して、「編集」「形式を選択して貼り付け」「値」と「乗算」でOK その3:数字の1列のみを選択して、「データ」「区切り位置」 「次へ」「次へ」で2画面進んで表示形式を標準にして完了 上記なら「ツール」「マクロ」「新しいマクロの記録」でマクロ化できます。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.3

あいているセルに数字の1を入力してコピーして、数字にしたいセルに形式を選択して貼り付けにして、値の乗算で貼り付けてみて下さい。

回答No.2

文字列を数値に一括変換すれば問題のひとつは解決すんですか?

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

データが入力されたセルの末尾が「''」(シングルクォーテーションが2つ)である全てのセルについて、末尾の「''」を削除すればよいですか? 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 Sub Macro1() Dim r As Range   For Each r In Cells.SpecialCells(xlCellTypeConstants, 3)     If Right(r.Value, 2) = "''" Then       r.Value = Left(r.Value, Len(r.Value) - 2)     End If   Next r End Sub

関連するQ&A