履歴: 2021/ 6/20 初回アップ
ちょっと休憩
概要
その昔、都内のさる印刷会社からの依頼で Excelで 数万件の顧客情報から必要な情報を抜き出してリストを作成し、
案内ハガキを 4面割付プリントするシステムを作ったことがあった。
社長が契約額に釣られてホイホイ受注してきたのに、実際は奥さんが Excel上でソートやコピーを繰り返して印刷リストを出力する作業を
ほぼマニュアル操作で納期に間に合わせるために「頭にねじり鉢巻状態」だったらしい。
奥さんが「もう限界、なんとかして!」と悲鳴を上げたのを社員が聞いて、Webで私のページを探して相談してきたものだが、
まず会社に伺って作業の流れを聞いて、概要を理解し 見積もりをさせていただいた。
結果、1ヶ月ほどで一次の Excel VBAプログラムが完成し、奥さんが操作するのは数十時間 > 30分ほどに短縮。「おかげで家事が出来るようになりました。」
と感謝された。(困っている人を見ると放っておけないそんな性格が災いして、大甘な見積もりより大幅超過の作業時間になってしまった;;;涙)
その後、いろいろ相談される中で(印刷会社なのに!)リストの印刷は外注していると知って、安価な業務用インクジェットプリンタでプリントできるように
別プログラムを提案したところ、外注作業も内部に取り込むことが可能になって利益が大幅増になったとえらく感謝された。
今でもたまに、その時の縁で「Help!」と電話がかかってきて、Excelの操作の疑問や PCの不具合、プリンタの増設、受注先の
プログラムの改造などの相談に乗っている。
(タダ同然!の IT担当者のような存在になってしまった。)
まあ、何だかんだ言っても リタイアの身で ヒマだから誰かのお役に立てる・社会参加していると実感できるだけで幸せなんだが。
ここでは Excelで VBAをプログラムする初期設定から、簡単なプログラムの一例として Zipファイルを解凍する方法を示す。

「ファイル」>「オプション」>「リボンのユーザー設定」で「開発」にチェックして「OK」で閉じる。
Excelのメニューに「開発」が表示されるのでそれを選択して、「開発」メニューリボンの中の一番左「Visual Basic」を選択。

Visual Basicの ウインドウが開くので、そのメニューから「挿入」>「標準モジュール」を選択。
Sub OpenZipFile()
Dim ZipPath As String
Dim ExpandPath As String
Dim Result As Boolean
ZipPath = "C:\ドキュメント\Doc\Excel_Sample\Zip\test.zip"
ExpandPath = "C:\ドキュメント\Doc\Excel_Sample\unZip"
Result = UnZip(ZipPath, ExpandPath)
If Result = True Then
Call MsgBox("解凍成功" & vbCr & ExpandPath, vbOKOnly, "解凍完了")
Else
Call MsgBox("解凍失敗" & vbCr & ZipPath, vbOKOnly, "解凍失敗")
End If
End Sub
Function UnZip(a_ZipPath As String, a_ExpandPath As String) As Boolean
Dim sh As New IWshRuntimeLibrary.WshShell
Dim ex As WshExec
Dim Cmd As String
Cmd = "Expand-Archive -Path " & a_ZipPath & " -DestinationPath " & a_ExpandPath & " -Force"
' コマンド実行
Set ex = sh.Exec("powershell -NoLogo -ExecutionPolicy RemoteSigned -Command " & Cmd)
' コマンド失敗時
If ex.Status = WshFailed Then
' 戻り値に異常を返す
UnZip = False
' 処理を抜ける
Exit Function
End If
' コマンド実行中は待ち
Do While ex.Status = WshRunning
DoEvents
Loop
' 戻り値に正常を返す
UnZip = True
End Function
----------- ここまで ------------------------------------------------
Visual Basicの画面から 元の Excel画面に戻って、
⑤ そのボタンを右クリックして ⑥「マクロの登録」を選択。
⑦ マクロの登録画面で 下のリストの中から「OpenZipFile」(上記 VBAコードのサブルーチン名)というマクロをクリックして選択、
Visual Basic のウインドウに戻って、「Tool」> 「参照設定」をクリックする。

表示されたライブラリファイルのリストを下の方にスクロールして「Windows Script Host Object Model」を探してチェックを付けて「OK」を押す。
Access Counter: