Excel 2019 for Mac でのユーザーフォーム

December 4, 2020
excel フォーム データ入力 vba Mac

Excel 2019 for Mac でのユーザーフォーム

ユーザーフォームを利用するとユーザーの利便性が高まるだけでなく、Excel の誤った操作での不具合を減らす事のできる有益な機能のひとつです。更に VBA でしか作成できない事もあり、VBA のステップアップの目安にもなります。しかし、Excel 2016 for Mac ではユーザーフォームの作成機能が失われました。今回は Excel 2019 for Mac でユーザーフォームがどのような扱いになっているかを説明します。

また、 Excel 2011 for Mac で公式ではユーザーフォーム上のイメージコントロールが利用できるとされていたのにできなかった問題がどうなっているかも説明します。

ユーザーフォームは作成不可

結果から言いますと Excel 2019 for Mac でもユーザーフォームの起動とコードの編集はできますが、作成機能は失われたままです。Windows版で作成したユーザーフォームを VBE で開いてみると、ユーザーフォームを選択してもプロパティが表示されません。

ツールパレットも選択不可になっています。

ファイルのエクスポートは可能です。Windows版でインポートできるかはまだ検証してません。

ユーザーフォーム上のイメージコントロール

検証用にWindows版で作成したユーザーフォーム上のイメージコントロールは以下の3つです。

  1. ラベルに LoadPicture で動的に表示
  2. イメージコントロールの Picture属性に直接設定
  3. イメージコントロールに LoadPicture で動的に表示

windows版での表示

フォーム上のコード

Private Sub UserForm_Initialize()

Dim path As String

path = ThisWorkbook.Worksheets(3).Range("B4").value

LabelImage.Picture = LoadPicture(path)
Imagecode.Picture = LoadPicture(path)
 
ImageForm.Repaint

End Sub

パス

Mac版での結果

条件 2.イメージコントロールの Picture属性に直接設定 のみ成功しました。他はある意味で Excel for Mac の伝統を引継いだようです。たまたまかもしれませんが、全てでアクセス権の付与作業も表示されませんでした。もしかしたら内部でコピーを保持しているのでしょうか?

LoadPicture(path) はエラーにはなりませんが、読み込めませんでした。

Excel 2019 for Mac でユーザーフォームを扱うのはかなり難しい事がわかりました。ユーザーフォーム2でも言及していますが、Windows版で作成したユーザーフォームはマージンを多く取っていないものは Mac で動かした際、不具合が出る場合が多いです。ツールパレットやプロパティが表示されない以上、両 OS で動くコードを書く際は手直しを Windows、デバッグを Mac と交互に作業をする手間が増える事が予想されます。

Next Previous

Excel 2019 for Mac VBA での画像の扱い

December 4, 2020
excel vba Mac

Excel 2019 for Mac VBE での日本語入力

December 4, 2020
excel vba Mac

Excel 2019 for Mac でのファイル関連関数の挙動について 3

December 3, 2020
excel vba Mac