
初心者です。
会社でRPAを導入することになり、これまで手作業でしていたことを自動化させようとしています。
毎日3-50件の顧客データを処理するのですが、CSVでダウンロードしたら電話番号が数値として認識されてしまい、先頭の0が消えてしまいます。
データ自体は毎回同じ形式でダウンロードできるので、例えば毎回A1:A50が名前、C1:C50が電話番号という風に場所は決まっています。
VBAを使って桁数で調整する方法は携帯番号の11桁と固定電話の10桁(市外局番がない場合は7桁)と相性が悪いので使えません。
自動化のための作業なので何かを手入力するというようなこともできないので、何か良い方法があれば教えていただきたいです。
また、もっと良い方法があるなら教えてください。
No.2ベストアンサー
- 回答日時:
こんにちは!
C列は必ず電話番号になっているのですね。
そしてハイフンなしの数値になっている!という前提で・・・
一例です。
Sub Sample1()
Dim c As Range
With Range("C1:C50")
.NumberFormatLocal = "@"
.HorizontalAlignment = xlRight
End With
For Each c In Range("C1:C50")
If c <> "" Then
If Len(c) > 7 And Left(c, 1) <> "0" Then
c = "0" & c
End If
End If
Next c
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.4
- 回答日時:
こんにちは
No3様に賛成です。
VBAでCSVを読む際には文字列として扱うことになりますので、そのままセルに代入しても文字列のまま認識されるはずです。
とは言え、後々の誤操作等で数値化してしまうのを防止する意味からも、予めC列(あるいはシート全体)の書式を「文字列」に設定しておいてから代入するほうがよろしいかと思います。
CSVの読込みに関しては、検索すれば数多く解説サイトが見つかることと思います。
ご参考まで。
No.3
- 回答日時:
こんにちは、
>CSVでダウンロードしたら電話番号が数値として認識されてしまい、先頭の0が消えてしまいます。
自動化するのであれば、データの入出力も自動化すると思いますが、であれば、
VBAでCSVをインポートする際に、カラム3にシングルコーテーションを付けるなどして文字列にするだけで良いのでは?
環境が見えませんが、CSV出力側で加工できるなら、越した事はありませんが
No.1
- 回答日時:
ようするに、まずはExcelのセルの属性をVBAで参照・設定したい・・・ということですよね?
でしたらGoogleなどで「Excel VBA セルの属性 文字列」といったキーワードで検索されてみて下さい。様々な解説ページがヒットするはずです。
セルごとに文字列長が事なる際、それぞれの先頭に文字または文字列を挿入したいという場合も同様の考え方で「Excel VBA セル 文字列の先頭 挿入」といった感じのキーワードで検索されるとよいように思います。
独学で知識を広めたいと思う際は「適当(=適切)な検索キーワードを思い付く」というのも結構大切なスキルになります。(^^;
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
【Excel VBA】先頭の「0」飛びを埋める方法
Visual Basic(VBA)
-
VBA初心者です。電話番号の数字の前に0を表示させたいです。
Visual Basic(VBA)
-
-
4
エクセルvbaで転記したのですが、数字のゼロが消えてしまいます。 ゼロも転記するためにはどうしたらい
Excel(エクセル)
-
5
CSVファイルの「0落ち」にVBA
Access(アクセス)
-
6
EXCEL VBAで、セルの文字列の前後に文字を入力する方法は?
その他(Microsoft Office)
-
7
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
8
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
9
同じ文字列なのにfalseになってしまいます。
Excel(エクセル)
-
10
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
11
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
12
VBA 指定した列にある日時データから時間を削除する方法について
Excel(エクセル)
-
13
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
Excel2000/VBA:値と書式のみ貼り付けたい。
Excel(エクセル)
-
16
VBA 数式を残して値をクリアについて
Excel(エクセル)
-
17
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
18
エクセルで文字化けしているセルを検索するには?
Excel(エクセル)
-
19
エクセル関数で文字列の中のスペースの有無を調べたい。
Excel(エクセル)
-
20
Excel 文字列の前後に、特定の文字を付加したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Left関数とRight関数を合わせた...
-
【Excel VBA】複数ある特定の文...
-
エクセルで文字列をtxtファイル...
-
アクセスで特定の数字以外(複...
-
エクセルでSQLでいうところの「...
-
同一セル内に関数と文字列を同...
-
MS SQLServer のSQLで文字列の...
-
エクセルでセル内の文字列の最...
-
VBAでCSVを文字列として取り込...
-
(エクセル)複数のセルの数値...
-
VBA テキストボックスの計算
-
VBA 1つのセルに入っている値の...
-
VS2008 C++ 書式付文字列書込み...
-
エクセル 指定行削除
-
Excelで指数表現しないようにす...
-
.Net DLLのデコンパイルに詳し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列をtxtファイル...
-
エクセルで文字列の最大値を抽...
-
Excelで3E8を3.00E+8にしない方...
-
Left関数とRight関数を合わせた...
-
アクセスで特定の数字以外(複...
-
Msgboxの×が押されたとき
-
MS SQLServer のSQLで文字列の...
-
Excelで指数表現しないようにす...
-
ORCLEでの小数の表示方法の変更...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
SQL の Update文(?) と ...
-
VBの「As String * 128」とは?
-
aaa.bbb.ccc という、「ドット...
-
同一セル内に関数と文字列を同...
おすすめ情報