質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

3回答

5083閲覧

MacでのExcelVBA

tuntun

総合スコア35

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/10/09 05:46

エクセルでチェックボックスの全選択、クリアボタンを実装したいのですが

VBA

1Sub AllCheck 2 dim i as integer 3 4 for i = 1 to (チェックボックスの数) 5 if ActiveSheet.OLEObjects("CheckBox" & i).Object.value = false Then 6 ActiveSheet.OLEObjects("CheckBox" & i).Object.value = true 7 End if 8 next i 9 10end Sub

これで実行したのですが
WorkSheetクラスのOLEObjectsプロパティを取得できません
というエラーが発生します。

原因はチェックボックスの名前がおかしいのかなと思い見てみましたが、
「チェック 」、「Check Box 」という2つの名称が出てきたのでその名前を指定しましたが同様のエラーが
発生しています。

Mac版のExcelでは使用することができないのでしょうか?
Excelのバージョンは2011です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GOTA77

2017/10/09 08:37

ActiveSheet.OLEObjects().Object.valueを使用したweb上にあるサンプルコードなどは実行してみたのでしょうか?
GOTA77

2017/10/09 10:03

実行した結果はどうでしたか?
tuntun

2017/10/09 10:41

for文のコードを実行しましたが、同様のエラーが起きました
guest

回答3

0

たまたま慣れないExcel VBAと格闘中でチェックボックスを使っています。
次のようなコードで、チェックボックス全部をチェックされた状態にできました。
Excel for Mac 2016です。

vba

1 Dim i As Integer 2 For i = 9 To 13 3 If ActiveSheet.CheckBoxes("Check Box " & i).Value = -4146 Then 4 ActiveSheet.CheckBoxes("Check Box " & i).Value = 1 5 End If 6 Next i

見当違いや不適切なこと/方法だったらすみません。
とりあえず。

投稿2017/10/28 06:17

yoshinotaichi

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Mac環境は手元には無いので、違いについてはこちら(Mac版Excel(Office2011)のVBAを使う場合の注意点)などを確認されて下さい。

で、提示のコードについては、Windowsとの相違が無い前提で回答すると、チェックボックスの名前の指定に問題があると思います。

「チェック 」、「Check Box 」という2つの名称が出てきたので

ということであれば名前が違っていますね。
コードに合わせるなら、「Check Box 1」の方を全て「CheckBox1」のようにしてみて下さい。

コードの方を合わせるなら以下のように。

VBA

1Sub AllCheck 2 dim i as integer 3 4 for i = 1 to (チェックボックスの数) 5 if ActiveSheet.OLEObjects("Check Box " & i).Object.value = false Then 6 ActiveSheet.OLEObjects("Check Box " & i).Object.value = true 7 End if 8 next i 9 10end Sub

投稿2017/10/09 13:08

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コメントに書くと長いので回答に書きます。

MacでActiveSheet.OLEObjects().Object.valueを検証して
https://qiita.com/Dace_K/items/d9a51c4cdb3a730becf9

のfor文のコードを実行しましたが、同様のエラーが起きました。
とのことですが、nの値は適切でしょうか?

一応②のVBAでプロパティを確認するコードを試して見てください。

Mac版とwindows版の互換性はActiveX に依存する機能以外はあったと思います。

デバックツールでステップ イン実行や値のWatchをやってみてください。
ステップ イン実行でi=1の時に実行することができれば、
iの値は適切ではないのではないでしょうか?

windows版ですがデバッグの仕方のしかたのリンクを貼っておきます。

デバッグの仕方
http://www.tipsfound.com/vba/01010

投稿2017/10/09 11:19

編集2017/10/09 13:17
GOTA77

総合スコア160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問