05月08日
macのExcel2011でVBAを試す!
Excel:mac2011、侮っていました。VBAつかえるんですね^^
開発タブとかないだろうと思ったら、ありました!
(Excelメニュー →共有とプライバシーのリボン→ユーザ設定のリストボックの下部にある
開発をチェックで、表示されます)
ほんとにVBAあるの?とエディタ開いて
標準モジュールを追加し、下記コードを打ち込んで、
Sub test()
MsgBox("Hello!")
End Sub
実行!
お!メッセージボックスが表示された^^
CreateObjectで、FSOを試しましたが、コンパイルエラー orz
ActiveXは使えないという悲しいメッセージが・・
では、ActiveSheet.QueryTablesは使えるのか!?
と思い
URLから取得した結果をExcelに出力するVBAを打ち込んで、
実行!
コンパイルエラーなしで、表示されました^^
ActiveX経由のWEB取得では文字化けしませんが、
QueryTablesはそんな機能が見当たらないので
文字化けしていますね><
QueryTablesのリファレンスを探しましたが、Excel:mac 2011の情報は見当たりません orz
Windows版をみてくださいってことなんですかね・・
MSDN QueryTableオブジェクト
文字化けの解決方法は現在のところ、未解決事項です orz
調べてみると、macでは、ActiveXの代わりに、AppleScriptつかうんですかね?
CreateObjectの代わりにAppleScriptなのか、WSHの代わりのAppleScriptなのか
混乱しています〜
現在MacBookでExcelからWindowsPCでExcel環境になっています。2021年12月10日時点ではMacで実験する環境がありません。ですが、今なら、いくつか試したいことがあります。
Office Web アドインで攻める
希望は少ないかもしれない、Visual Studio for Mac+.NET 6 + VBAで攻める
Excel内部に入り込むならWindows版 Excelの方が簡単ですね><。
開発タブとかないだろうと思ったら、ありました!
(Excelメニュー →共有とプライバシーのリボン→ユーザ設定のリストボックの下部にある
開発をチェックで、表示されます)
ほんとにVBAあるの?とエディタ開いて
標準モジュールを追加し、下記コードを打ち込んで、
Sub test()
MsgBox("Hello!")
End Sub
実行!
お!メッセージボックスが表示された^^
CreateObjectで、FSOを試しましたが、コンパイルエラー orz
ActiveXは使えないという悲しいメッセージが・・
では、ActiveSheet.QueryTablesは使えるのか!?
と思い
URLから取得した結果をExcelに出力するVBAを打ち込んで、
Sub TestQueryTablesURLAccess()
With ActiveSheet.QueryTables.Add(Connection _
:="url;https://itunes.apple.com/jp/rss/toppaidipadapplications/limit=10/xml", _
Destination:=Range("A1"))
.Refresh BackgroundQuery:=False
End With
End Sub
実行!
コンパイルエラーなしで、表示されました^^
ActiveX経由のWEB取得では文字化けしませんが、
QueryTablesはそんな機能が見当たらないので
文字化けしていますね><
QueryTablesのリファレンスを探しましたが、Excel:mac 2011の情報は見当たりません orz
Windows版をみてくださいってことなんですかね・・
MSDN QueryTableオブジェクト
文字化けの解決方法は現在のところ、未解決事項です orz
調べてみると、macでは、ActiveXの代わりに、AppleScriptつかうんですかね?
CreateObjectの代わりにAppleScriptなのか、WSHの代わりのAppleScriptなのか
混乱しています〜
現在MacBookでExcelからWindowsPCでExcel環境になっています。2021年12月10日時点ではMacで実験する環境がありません。ですが、今なら、いくつか試したいことがあります。
Office Web アドインで攻める
- CreateObjectはMac非対応。AppleScriptはExcel内部構造にはアクセスできない。その代わりの手段の一つが「Office Web アドイン」
- TypeScriptで記述する。Visual Studio または Node+Visual Studio Code、最新バージョンの Yeoman と Office アドイン用の Yeoman ジェネレーターが必要。
環境が整えばExcel 作業ウィンドウ アドインを作成することも簡単そう。 - Office内部にアクセスするクラス、メソッドが用意されている。
Excelでテーブルを作ったり、フィルタ、並び替えも自由自在。チュートリアル: Excel 作業ウィンドウ アドインを作成する
希望は少ないかもしれない、Visual Studio for Mac+.NET 6 + VBAで攻める
- VBAは外部DLLをロードする機能が用意されている。C#で作ったDLLをVBAから呼び出すことが可能。チュートリアル: Visual C# プロジェクトのコードを VBA から呼び出す
- NET 6はクロス プラットフォーム、Mac対応。.NET の概要
- Visual Studioは2019版からMacに対応している。最新はVisual Studio 2022 for Macプレビュー
Excel内部に入り込むならWindows版 Excelの方が簡単ですね><。
コメントシステムを利用したくない方はお問い合わせからお願いします。
2013.8.19 DISQUS(外部コメントサービス)の利用を開始しました。
Facebook, google, Twitter等のアカウントで投稿可能です。