Excelマクロを利用すると、Excelから指定したデータのCSVファイルを自動で保存し、ファイルの保存先も指定することができます。ただ、複数人で使う場合は、保存先のパスをそれぞれに指定したいというケースもあります。
その場合の解決策をまとめてみました。
Excelマクロのファイル保存先を人ごとに変えたい
Excelマクロは決まった処理を自動化するのに便利です。
たとえば、Excelに元データのCSVファイルを貼り付けて、データ配列の違う別のソフト用のCSVファイルをつくるという処理がある場合、変換後のシートををF12で保存することになります。
ただ、これを何度もやるなら負担はそれなりです。
ここでマクロを使えばCSVファイルを自動で名前をつけて保存し、さらにどこに保存するかも指定することができます。
保存先とファイル名は””で囲って指定します。この場合は、Dropboxにあるinboxフォルダに「import.csv」というCSVファイルで保存してね、とお願いしています。
1 2 3 4 5 6 7 |
■ CSVファイルで保存 ActiveWorkbook.SaveAs Filename:="/Users/gouemura/Library/CloudStorage/Dropbox/0 inbox/import.csv",_ FileFormat:=xlCSV, local:=False |
自動化することで、元データをコピペしてからマクロを動かすことでinboxにCSVファイルができます。
F12で名前をつけて保存などの処理はする必要なく、できあがったデータを別ソフトにインポートすればいいわけです。
こうしたExcelでの自動処理にはマクロを使うことになります。
複数人でマクロを利用する場合の保存先の指定
もし、この処理を複数人のパソコンでできるようにするならどんな影響があるか?
使っているパソコンが違えば、ファイルの保存先も変わることになります。
DropboxでExcelファイルを共有をしていた場合、どちらのパソコンでも開くことができます。
で、マクロでつくったCSVファイルの保存先を変えるなら、保存先のパス名も変わることになります。
その場合、マクロでどうやって指定すればいいのか。
ここで思いつくのは、もし〇〇なら大空翼のパス名を利用し、そうでなければ、植村豪の保存先パスを利用するということ。
今回はその〇〇にパソコンのユーザー名を使いました。
次のように書いています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
'■import.csvというファイル名で保存 ' ユーザー名の取得 Dim userName As String userName = Environ("USERNAME") ' 保存先パスの設定 Dim savePath As String If userName = "TSUBASA" Then ' ユーザーが「TSUBASA」の場合の保存先パス savePath = "C:\Users\TSUBASA\Dropbox\inbox\import.csv" Else ' ユーザーが植村の場合の保存先パス savePath = "\\Mac\Home\Library\CloudStorage\Dropbox\0 inbox\import.csv" End If ' ファイルの保存 Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:=savePath, FileFormat:=xlCSV, local:=False ActiveWorkbook.Close Application.DisplayAlerts = True |
Excel関数のifはマクロで書くと、「If 〇〇 else △△ end if」となり、elseは「そうでなければ」を意味します。
「savePath」を変数として、ユーザー名によって保存先パスを変えているわけです。
どちらのパソコンでマクロを動かしても、それぞれの保存先パスを利用することができます。
ちなみに保存先パスは、WindowsならWindows+Eでエクスプローラーを開いて、アドレスバーで右クリックすると、コピーができます。
Macなら保存先にあるファイルを右クリックしてoptionキーを押すと、パス名をコピーを選ぶことができます。
ChatGPTに聞いてみるのも手
ChatGPTの現状の利用方法の1つはプログラミングだと考えています。
使い方の説明などを聞くと、けっこう丁寧に教えてくれます。
質問形式で聞かなくても、単語だけでもけっこうくわしく。
「こうやって動いてほしい」と思ってもマクロでどう書けばいいかわからないときは、ChatGPTを利用して学びながら書いていくのもおすすめです。
本で調べるよりは、具体的に回答してくれるのでやりたいことを実現しやすいのではないでしょうか。
【編集後記】
昨日は税理士業、午後からセミナー参加。いろいろと参考になりました。夜はマリオワンダーを長男(8)と。星5つのステージに苦戦しクリアできずに敗北。また日を改めて挑戦しようかと。
【昨日の1日1新】
※「1日1新」→詳細はコチラ
Instant Notion