今日の日付(2019年11月1日⇒191101)
が名前に含まれるxlsxファイル「a191101.xlsx」
をひらくLibreOfficeマクロを示す。
■日付が名前に含まれるxlsxファイルをひらくマクロ
REM ***** BASIC ***** Sub sample02() Dim obj As Object Dim url As String url = ConvertToUrl("D:\a" & Format(Date, "yymmdd") & ".xlsx") obj = StarDesktop.loadComponentFromURL(url, "_blank", 0, Array()) End Sub■条件
・ファイル名「a191101.xlsx」
・今日の日付(2019年11月1日⇒191101)
・Dドライブ[D:\a191101.xlsx]に保存したファイルをひらく
■実行結果
Dドライブに保存している「a191101.xlsx」がひらく。
■応用
デスクトップに保存している「a191101.xlsx」を開く場合、
マクロ5行目を変更する。
url = ConvertToUrl("C:\Users\kei\Desktop\a" & Format(Date, "yymmdd") & ".xlsx")※注意
デスクトップの場所を示すコードは
名前(kei)が含まれるので、人により異なる。
「xlsxファイルを右クリック」⇒「プロパティ」で場所を確認できる。
プログラムは別環境下でも動作することが望ましい。
特に理由がなければ記述のよさ(冗長性が高い)は、
「Dドライブ>>>デスクトップ」
「冗長性が高い」とは簡単に言えば
「デスクトップ」ブログラムを誰かに渡しても動かないが、
「Dドライブ」プログラムはDドライブがあれば動く。という事。
■(参考)エクセルVBA-名前に日付を含むxlsxファイルをひらくマクロ
Sub sample01() Workbooks.Open ("D:\a" & Format(Date, "yymmdd") & ".xlsx") End SubエクセルVBAで
名前に日付を含むxlsxファイルをひらくマクロを示す。
※2019/11/3追記※
【注意1】「Workbooks.Open」はLibreOfficeでも使用可。
「Sub sample01()」の前に「Option VBASupport 1」追記。
Option VBASupport 1 Sub sample01() Workbooks.Open ("D:\a" & Format(Date, "yymmdd") & ".xlsx") End Sub
【注意2】プログラムコードを記述する場所は、
■「マイマクロ & ダイアログ」⇒「Standard」⇒「Module1」はNG。
■「〇〇.xlsm」(エクセルのVBAマクロファイル)⇒「VBAProject」⇒「モジュール」はOK。
■あとがき
実務で使うならまずは「ファイルをひらく」マクロだろうと思い、LibreOffice BasicでWorkbooks.Open使えるのか試したら
エラーがでて使えなかった。
※「VBAProject」の「モジュール」にコード記述したら動いた。
それに気づかず記述した、
LibreOffice流での「ファイルをひらく」が冒頭のマクロ。
LibreOfficeをずっと使うならLibreOffice流で学べばよい。
仕事でエクセルを使う予定なら、
はじめからエクセルを学ぶ方が
LibreOfficeを学ぶ手間をはぶける。
同じエクセルでもバージョンの違いで
Excel2003(.xls)までは最大行数=65,536行。
Excel2007(.xlsx)からは最大行数=1,048,576行。
相違あるから、
今使うモノを学ぶのは時間効率を考えると大事。
ただ、私はエクセルVBA使えるので、
LibreOfficeでも使えるか試していこうと思う。
ソフトを少し使ってみたカンジではエクセルの方が使いやすい。
私がエクセル使いなので評価に偏りはあるが、
「複数行まとめてコメントアウトできないのか…?」みたいな。
あと、モジュール名やコードの日本語が「??」に置き換わる
バグっぽいのが発生…。
※LibreOfficeでエクセル形式(xlsxやxlsm)で保存したファイルを開くと発生。
⇒LibreOfficeのODF形式(ods)で保存すると回避できる。
「日本語を使わない」という手もあるが現実的ではないな。
LibreOffice使うなら「ODF形式使え」ってことですわ。
バックアップあるから復元可能だが危険…。
「タダより高いモノはない」という言葉が脳裏をよぎる。
まあ、
「無料で即時プログラムを動かしてみたい」「試したい」
なら
■LibreOfficeでエクセルVBAマクロを実行する方法
を読んで実行すれば達成できる。
「プログラムを動かした事がある人」
になれる。実務レヴェルではないが、
何事も積まねばとどかない。
未来の予定、何を見定め、目標とするかで、
今実行すべき行動の正解は異なる。人による。
とりあえず今後は、
会社の事務、実務、実作業で使った
使用頻度の高いマクロを示していこうと思う。
以上。