流行りのChatGPT。
内職しながら活用してみようと考えて、作ったコードを評価してもらいました。
なかなか納得な答えを返してくれました。
おもしろいですね。これ。
癖になりそう。
~答え~
このVBAコードは、作業フォルダ内の任意の「作業ファイル.xls」または「作業ファイル.xlsx」を開くものですね。まず、作業フォルダパスを指定します。次に、作業フォルダ内の「*作業ファイル.xls?」という名前のファイル名を取得し、変数「ファイル名」に格納します。最後に、作業フォルダパスとファイル名を結合して作業ファイルを開き、「作業ファイル」という変数に格納します。
このコードは問題ないと思いますが、念のために以下のポイントに注意することをお勧めします。
作業フォルダ内に「作業ファイル.xls」または「作業ファイル.xlsx」が存在するか確認します。
作業ファイルが開けるかどうかを確認します。
作業ファイルがすでに開かれていないか確認します。
~以下質問~
Sub 作業フォルダにある部分一致の作業ファイルを指定して開きたい()
'任意の作業フォルダ内の各人別の指定形式のファイルを都度操作したいな。。。。
'複数のプロシージャでも下記の作業ファイルを仕様するならばCallの括りのところに入れるか、Publicで入れるか???
'自PCのDocument内に\作業フォルダを作成し、そこに対象ファイル※ここでは”*作業ファイル.xls?”を格納します
'作業フォルダパスを変数にします。
Dim 作業フォルダパス As String
作業フォルダパス = "C:\Users\user\Documents\作業フォルダ"
'ここはお尻の/を忘れがちなので要注意!
'作業フォルダ内の任意のファイル名を取得して変数にします。
'ちなみに*がワイルドカード、?はAnyの1文字。この部分はいろいろ。
Dim ファイル名 As String
ファイル名 = Dir(作業フォルダパス & "*作業ファイル.xls?")
'作業ファイルを開きます。
Workbooks.Open Filename:=作業フォルダパス & ファイル名
'作業ファイル(ワークブック)を変数にしてます。Workbookの場合は「Set」します。
'開いたファイルを以降に使えるようにします。
Set 作業ファイル = ActiveWorkbook
作業ファイル.Activate
End sub
~~
そのあと、コードをまるまる教えてくれるのかな?と思って
「作業フォルダにある部分一致の作業ファイルを指定して開きたい」
と質問。
そうすると以下のような回答で、ほぼ一致というかさっきの内容を取り込んだ内容が答えに。
こうやって情報を蓄積していくんですね。目に見えるのでおもしろいですね。
~答え~
VBAで作業フォルダにある部分一致の作業ファイルを指定して開くには、次のようなコードを作成することができます。
vbnet
Copy code
'作業フォルダのパスを設定する
Dim strPath As String
strPath = "C:\Users\user\Documents\作業フォルダ"
'作業フォルダ内の部分一致のファイル名を取得する
Dim strFile As String
strFile = Dir(strPath & "作業ファイル.xls?")
'部分一致の作業ファイルを開く
Workbooks.Open Filename:=strPath & strFile
このコードでは、作業フォルダのパスを変数 strPath に設定し、Dir 関数を使って、部分一致のファイル名を取得しています。そして、Workbooks.Open 関数を使って、作業フォルダ内で一致したファイルを開きます。
これどんどん聞きながら試せそう。
ググってみると、いっぱい出てきてもなかなか帯に短したすきに長しになってしまうけど、ChatGPTではやりとりしながら絞り込む回答探しの方が見る範囲がせまくて済む。非常に便利だと思います。