アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。
CSVファイルを未開封の状態でフォルダに格納し、エクセルのデータタブからデータの取得をクリックし、CSVファイルを現在呼び出しております。

電話番号等を文字列にして0が抜けないようにしておりますが、そちらをマクロで対応することは可能でしょうか。
(毎回、文字列にする部分は同じです)
何卒宜しくお願い致します。

A 回答 (1件)

こんばんは、


データタブからデータの取得をクリックし
レガシーかな?
マクロの記録でどのように記録されるか、試して 示される方が良いかも。

CSVデータの取得は、クリアーなシートに抽出するのでしょうか?
それとも、データを追加する形でしょうか?
CSVデータは、文字コードをはじめ、色々な形式があると思うので
一概にはコードを示す事が出来ません

いずれにしても、データ抽出時に加工などをすれば良いのではないでしょうか、
一番左の文字が0なら 'を加えるとか、、、

CSV抽出時、必ずクリアーなシートに抽出するなら
 QueryTableを私的には、よく使います。
この場合、文字として抽出したいカラムを
TextFileColumnDataTypes で設定する事で比較的簡単に出来るかも

Private Sub in_csvQuery(pathFile_name As String, Sheet_name As String)
Dim Ws As Worksheet
Set Ws = Worksheets(Sheet_name) ' CSV のデータを取り込むシート
Dim qt As QueryTable
On Error Resume Next
Set qt = Ws.QueryTables.Add(Connection:="TEXT;" & pathFile_name, Destination:=Ws.Range("A1"))
With qt
.TextFilePlatform = 932 ' Shift_JIS
.TextFileParseType = xlDelimited ' 区切り文字の形式
.TextFileCommaDelimiter = True ' カンマ区切り
.RefreshStyle = xlOverwriteCells ' セルに上書き
.TextFileColumnDataTypes = Array(1, 1, 2, 1, 1, 2, 1, 1, 1, 2)
.Refresh
.Delete
End With
End Sub

1、2、4、5、7、8、9列目 自動
3、6、10列目 は、文字列として指定抽出(頭の0は消えません)
条件に合わないケースが多いかも知れません。

pathFile_nameは ファイルパスとファイル名(拡張子を含む)
Sheet_name は 出力先のシート名

呼び出し側 例
Call in_csvQuery("C:\Users\UserName\Desktop\新しいフォルダー\TEST.csv", "Sheet1") みたいに呼びます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!