下記の質問 Q. をいただく
Vbaを、勉強中初心者なのですが、この度質問させて頂きたいことがあり、自身では調べきれずメッセー ジさせていただきました。
「内容」
Vbaとvbsの違いについてです。現在、勤め先でvbaを使用し作成したxlsmファイル(150個)を作成しまし た。当該各ファイルにアクセスした際、open時イベントでieエクスプローラを操作し、それぞれのurl(4 ページ程経由、各xlsmファイルの設定ごとに、キーワードを入力したりチェックして別々のInternetエ クスプローラのページ)へアクセスし、別のcsvファイルへアクセス日時等を記録し、当該xlsmファイル をとじる。と言うファイルを作成しました。
現在1度ファイルのアクセス時間は2から3秒平均です。1日の使用頻度は400程度になる想定です。ところが最近になり、初めてvbsというものについて知りました。これは私の認識ではエクセルファイル の開閉を経由せず(開閉時間を短縮してより早く目的ページを表示することが可能)、マクロ同様のie操 作を行うことができるものという認識で正しいでしょうか。
先日「vbsサンプル大全集」という書籍も注文し拝読しているのですが今一理解がすすまず、ご享受頂け ると有難いと思い質問させていただきました。
回答 A として 送った、情けない内容をメモ Memo として残します。
※コメント欄にツッコミ待ってます・・・・
下記、回答
1.エクセルファイルの開閉 時間分速くくなるのですか?
>これは私の認識ではエクセルファイル の開閉を経由せず(開閉時間を短縮してより早く目的ページを表示することが可能)、
現在の エクセルファイルの開閉時間が、どれだけかかるか、
環境によって違うのでわかりませんが
言われているようにその分は速くなりそうですね。
2.vbs と vba は同じ?
>マクロ同様のie操 作を行うことができるものという認識で正しいでしょうか。
ie操作だけだと、そんなに変わりないけど、
私の手前味噌ページだと
https://ken3memo.hatenablog.com/entry/20110721/1311244241
や
https://ken3memo.hatenablog.com/entry/20110828/1314516403
とかだけど、質問に対する違いを説明していないですね・・・
vbsでAs XXXX と型指定できない、※参照設定が無い
Dim objIE '変数を定義します。
とかで、開発に慣れていないと、苦労するかなぁ。。。
google:vbs Dim 型指定無し
vbsとvbaは完全互換ではないので、
よく言われるのが
2.1 vbsに無い Excelの標準関数があったりする
google:vbs Format関数が無い
で検索すると
まぁ無いなら作ればいいんだけど
http://blog.livedoor.jp/tea_cocoa_cake/archives/7578885.html
や
https://qiita.com/yaju/items/8e07c8c6d9eeda316cd6
など
2.2 テキストファイルのアクセスも
>別のcsvファイルへアクセス日時等を記録し
この処理、コードを見ていないので、何とも言えませんが、
csvファイルへアクセス日時等を記録する処理で、
vbsのテキストファイル処理が必要かなぁ。
google:vbs テキストファイル
3.ExcelファイルにURLなどの情報が書かれているのでは?
>当該各ファイルにアクセスした際、open時イベントでieエクスプローラを操作し、
>それぞれのurl(4 ページ程経由、各xlsmファイルの設定ごとに、キーワードを入力したりチェックして
>別々のInternetエ クスプローラのページ)へアクセスし、
>別のcsvファイルへアクセス日時等を記録し、当該xlsmファイル をとじる。と言うファイルを作成しました。
各、ExcelファイルにURLやキーワードなどの情報が記載、記録されているので、
VBSに全てを移行すると、
その情報(Excelで持っている情報)
>それぞれのurl(4 ページ程経由、各xlsmファイルの設定ごとに、キーワードを入力< ←これは、どこで?(vbsプログラム内に埋め込みだと修正保守が大変など)どうやって管理するのか?
URLやキーワードなどの可変の情報をセルに書いておけるって、修正作業などで便利なんだなぁ・・・
など、移植はイロイロと考えさせられるかなぁ、
4.個人的な感想
もし、Excelの開閉が遅いだけなら※なんとなく、そんなに速くならないような気もしますが、
今、どんな性能のPCを使っているか(CPUやメモリ、HDD or SSD)わかりませんが、
くそ三流プログラマーとしては、
動いているものを壊すよりも、
PCの性能UPでExcelの開閉を早くする・・・
や
IEの画像を表示させない※これは、相手がもしかして、画像をカウンターとして使っていると、
アクセスアップ代行業務とか業務内容によっては使えませんが
google:VBA VBS 違いは、検索すると出てくると思うので、
ア.現在の Excelで管理中のURLとキーワードをどこで管理するのか?
イ.結果のcsv書き込み部分のコードを VBSで簡単に移植できそうか
このあたりも探ってみるのがいいのかなぁ。
と
素人アドバイスですが、なにかの参考となれば幸いです。
※せっかく、前向きに速度アップを考えて VBSの実行を検討されているのに
大丈夫だよ、安心して、簡単だよと背中を押すどころか、
逆に、やる気のある人を縛り付ける老害プログラマーに自分自身がなってしまうとは・・・
歳は取りたくないですね(年齢のせいにするなって・・・)
安全第一・現状維持の老害は無視するに一票、ほっといて、
チャレンジを成功させて、
一秒でも処理を速く、業務改善してください
スキルを磨いてくださいね
老害三流プログラマー Ken3 より