まりふのひと

MiPSネットワーク回線利用予定更新のExcelマクロ(VBA)が完成の域に...

 まりふ・いきいきパソコン学習会(MiPS) ネットワーク回線利用予定(麻里府発 > H29年度学習予定)は、

  1. Excelの手作り。
    • 「使用グループ名」は条件付き書式で塗りつぶしている。
  2. 上書き保存後、
  3. 名前を付けて、HTML形式で保存。
  4. FFFTP(ファイル転送)で、Yahoo!ジオシティーズにアップロード している。


 2.〜4. の手順は固定なので「マクロ(VBA)にしよう」と着手して‥‥ 早や2年、昨日、今日の雨天を利用して、やっと完成の域に達した。


§1.Excel(xlsx)の更新後の問題

  1. マクロを起動するためのボタン[マクロを有効にする]を、当初はセルH1の適当な場所に作ってあった。
  2. その状態で HTMLファイルを作ると、当然、このボタンも出来る。(飾りであるが...)
  3. そのため、xlsxを上書き保存後、(マクロで出来なので)手でボタンを切り取り後、HTMLファイルを作成していた。

  4. 2年後、
    1. 2行目にボタンを作る。
    2. xlsxを上書き保存後、
    3. 2行目を非表示にし、
    4. HTMLファイルを作ればよいことに気づいた
§2.ページタイトルの問題

  1. マクロで付けられない‥‥
  2. そこで、HTMLファイルを同名で「名前を付けて保存」する時に、手入力していた。

  3. その後、セルA1の内容をクリップボードにコピーするコード(下記)がわかり、「貼り付け」で済むようになった
≪文字列をクリップボードにコピーするコード≫
'概要:引数1をクリップボードにコピーする
' http://www.relief.jp/itnote/archives/017881.php(インストラクターのネタ帳)
' [ファイルの参照]ダイアログで「FM20.DLL」ファイルを探す必要があります。
Sub toClipboard(argString As String)
Dim CB As New DataObject
    
    With CB
        .SetText argString          '変数のデータをDataObjectに格納する
        .PutInClipboard             'DataObjectのデータをクリップボードに格納する
    End With

End Sub
§3.マクロ(xlsm)を開いた時の問題
  1. [マクロを有効にする]ボタンは マクロファイル(xlsm)の Sub:AutoOpen を起動するようにしてある。
  2. この AutoOpen には何も記述していない。
  3. このため、[マクロを有効にする]をクリックすると、マクロファイルのシートが表示される。

  4. AutoOpenに
        Windows(ThisWorkbook.Name).Visible = False
    を記述すると、シートは表示されなくなる。
  5. が、マクロファイルにある「更新履歴」を記入できなくなる。
  6. このため、
        Windows(ThisWorkbook.Name).Visible = True
    を実行する必要がある。
     これは、
    • Excel2013の表示・タブ/ウィンドウ・グループの[表示しない]/[再表示]に対応していることが判った。
    • [表示しない]にしてある場合、xlsxを閉じると xlsmも閉じられることも判った。(タスクマネージャで確認)

結果

 昨日、今日の雨天を利用して、「MiPSネットワーク回線利用予定」のマクロ(VBA)の改修を進めた結果、2年越しの課題が解決した