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

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

ただいまの
回答率

90.75%

  • VBA

    1641questions

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

  • Excel

    1403questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

シート上に配置したオプションボタンを他のPCでは認識してくれない

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,333

genki55

score 2

お世話になります。
win7 excel2010 環境でシート場にフォームコントロールのオプションボタンをシート上に配置して望むようなソフトができあがりました。
しかし、同ソフトを他の同一環境のPCでは配置したオプションボタンの行でエラーとなってしまいます。
自宅のPC(win10 excel2016)ではまともに動きました。
この原因を教えていただきたく、よろしくお願いします。

わがままな記述ですみませんでした。
先ず フォームコントロールのオプションボタンを配置したシートがあり10個のボタンのどれかを選択しようとしても選択できませんでした。オプションボタンが認識されていないように感じました。
マクロの一部は以下です。
'オプションボタンの選択が正しいかをチェックする
If Worksheets("メイン").OptionButton1.Value = True And Worksheets("メイン").Cells(19, 11) <> "" Then xxxx

on error goto 文でエラーとなることからシングルステップで確認しましたら上のオプションボタン1の箇所でエラーとなっておりました。

叉、他のOS等同環境のPCでネット上の元PCからドラッグして動きを観ましたらこちらはon error goto の前にエクセル事態が終了するエラーとなってしまいました。

以上です、よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • jawa

    2017/11/07 09:53 編集

    「配置したオプションボタンの行でエラーとなってしまいます。」とのことですが、どのようなコードを記述されているのかも提示されておらず、どのようなエラーが発生しているのかもわからない状態ではアドバイスは難しいです。このあたり情報追加いただけないでしょうか。

    キャンセル

  • ExcelVBAer

    2017/11/07 12:11

    他の環境へは、どうやってそのソフト(ブック?)を移動させたのでしょうか?

    キャンセル

  • ocdpdco

    2017/11/07 20:07

    on error goto文を削除、コメントアウトして動かしてみてください。excelがエラーメッセージを出しますのでそのメッセージ内容を掲示していただけますか?あとオプションボタン以外のコントロールは正常に動作していますか?

    キャンセル

回答 2

+2

質問への追記・修正依頼で「goto文を外して~」とコメントした者です。

オプションボタンのコード上の指定方法についての回答になりますが
ご確認ください。

以下環境にて検証してみました。
Windows7 Excel2010
Windows10 Excel2016

・どちらもブックを新規作成後にマクロブック(.xlsm)として保存。
・シート上にフォームコントロールのオプションボタンを2つ配置。
・違いを確認するためにActiveXコントールのオプションボタンを2つ配置。
・シート上にフォームコントロールのボタンを配置(イベント開始用)
・標準モジュールに下記テストコードを記述、イベント開始用ボタンに登録。

※シート名、オプションボタンのプロパティ等は全て初期値のままです。

以下、オプションボタンの状態確認サンプルコード

Public Sub Test()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")

    '↓フォームコントロールのオプションボタン

    If ws.Shapes("オプション 1").DrawingObject.Value = 1 Then
        MsgBox "フォームコントロールのオプションボタン1 = True"

    ElseIf ws.Shapes("オプション 1").DrawingObject.Value = -4146 Then
        MsgBox "フォームコントロールのオプションボタン1 = False"
    End If


    '↓ActiveX コントロールのオプションボタン

    If ws.OLEObjects("OptionButton1").Object.Value = True Then
        MsgBox "ActiveXコントロールのオプションボタン1 = True"

    ElseIf ws.OLEObjects("OptionButton1").Object.Value = False Then
        MsgBox "ActiveXコントロールのオプションボタン1 = False"
    End If

End Sub

コントロールの指定方法と真偽値の違いをご確認ください。
私の環境では質問者様の「If wb.Worksheets("メイン").OptionButton1.Value」という構文は
コンパイルを通りませんでした。
「OptionButton1.Value」はユーザーフォーム上での指定方法ではないかと。

どちらのタイプのコントロールもシート上でコントロールを選択すると、名前ボックス(数式バーの左側)に
コントロールの名前が表示されます。コード上でその名前を使用しています。
名前ボックスの名前を書き換えることで任意の名前で指定できます。

例)名前ボックスでオプションボタン1の初期名前「オプション 1」を「名前を変更したボタン」に書き換える=>

if wb.WorkSheets("メイン").Shapes("名前を変更したボタン").DrawingObject.value = True then

下記サイトがシート上のコントロールについてわかりやすくまとめられています。
http://blog.livedoor.jp/yorinaga/archives/51947591.html

お役に立てば幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/11 12:20

    ocdpdco様 貴重なお時間を割いていただき有り難うございます。
    紹介いただきましたサイトを参考にいたします。

    キャンセル

  • 2017/11/11 14:19

    ocdpdco様

    数式バーの横のボックスでオブジェクト名変更できること、こちらでも確認いたしました。
    御指摘ありがとうございました。

    キャンセル

0

検証結果による訂正(前回のは削除いたしました。混乱をきたし、大変申し訳ございません。)

1.念のためですが、ファイルの拡張子が「.xlsm」であることは大丈夫ですね?
これは、Excelファイルをコピーすると、デフォルトでは「.xlsx」となるので。

マクロは次の2つ共が有効でないと、実行できなくなっています。
・拡張子が「.xlsm」(マクロ有効ブック形式)
・セキュリティで「マクロを有効にする」設定にしている。

2.こちらでも検証してみたところ、フォームコントロールで追加したオプションボタンでは
「WorkSheets("メイン").OptionButton1.value=TRUE」の部分は不要でした。
この記述が、エラー起因となっていたようです。

従いまして、「WorkBooks~」の部分についても不要です。これは私の誤りでした。
大変申し訳ございませんでした…。

例えば、コード例としては次のようになります。

Sub オプション6_Click()

 '上記「オプション6」は、システムで自動決定されるので、変更不可。

     If Worksheets("メイン").Cells(x, y) <> "" Then

         '処理

     End If

 End Sub

3.「どのボタンも選択できない」ということでしたが、オプションボタンのマクロを手入力で
入力していませんでしたか?
フォームコントロールの場合もそうですが、マクロ記述の際には
「コントロールをダブルクリックしてから、出来たマクロに対応する処理を入力する」ことが
必要です。

なお、フォームコントロールのオプションボタンのアイテム名は、マクロのフォームモジュールの
場合と違って、任意での変更は不可能です。
もし、企業のPC上で再作成する場合は、下記に気をつけて下さい。

-シートコピー不可。オリジナルのファイルコピーか、場合によってはファイルの作り直しが必要。
-シート上のオプションボタンをフォームコントロールで配置する場合、出来立てでは全て非アクティブ
だが、どれか一つをクリックした時点で、クリックしたものが必ずアクティブ状態になるので、
処理には気をつけること。

以上です。また分からないことございましたら、ご連絡下さい。

追記(これは非常に大切なことなので、敢えて残しておきました。):

これはおせっかいなことかもしれませんが、「ネットワーク上~」という、
非常に気になった点がございましたので…。

もし「企業のネットワーク」を使ってのマクロ試行、という意味なのでしたら、
企業のネットワークでのマクロ試行は厳重禁止事項です!!

企業のネットワークの情報を利用する場合、試行段階では下記のことを厳重に遵守しなければいけません。
-マクロ:ローカルPC上での処理、かつネットワークデータはローカル上にバックアップしたものだけで試行。
-データ:企業貸与のPC以外での持ち出し・持ち込み・利用は厳重禁止!
(情報セキュリティ教育で教育しているはずですが…。) 

企業のネットワーク上でマクロ試行し、万一データに損失を与えると、最悪刑事事件や損害賠償という
とんでもない事態になることがございますので…。

ほとんどの企業では、ネットワーク上でマクロの実行が出来ないように、ユーザーの実行権限を制限
しています。ネットワークで遮断されたのはそのためと考えられます。

情報セキュリティ部門からお叱り受けますよ?
ログ取られていますから…。
(場合によっては始末書提出ものとなることも…。)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/09 13:24

    早速のアンサーを有り難うございます。
    1のローカルPC上に移して行いましたがNG。
    2のブック名を全て追加しましたが
     実行時エラー 438
     オブジェクトはこのプロパティまたはメソッドをサポートしていません
    でNGでした。
    If wb.Worksheets("メイン").OptionButton1.Value = True And Worksheets("メイン").Cells(19, 11) <> "" Then
    このオプションボタンがシート上で選択することができず、マクロも上のオプションボタンの行でエラーと
    なってしまいます。
    次の対応策をお待ちします。

    キャンセル

  • 2017/11/09 13:26

    すみません、追加の情報です。
    このプロジェクトにはフォームモジュールも使用しております。

    キャンセル

  • 2017/11/09 19:04 編集

    もしかして、そのファイル…genki55様が「自宅のPC」上で作成し、「企業のPC」にコピーしたもの…
    ですか!?
    その場合、回答の追記事項に抵触している可能性が…。

    あと、マクロ構文から思いついたのですが、もしかすると「チェックボックス」と
    「オプションボタン」を間違っていませんか?
    構文で「TRUEかどうか」を確認する必要があるのは、「チェックボックス」の方なので。
    一応、下記の点も確認してみて下さい。
    「チェックボックス」=□内に「レ点」を入れるもの。単独使用可能。
    「オプションボックス」=〇内に●をつけるもの。単独使用不可。

    また、「オプションボタン」は、初期段階で必ずどれか1個を「TRUE」にする必要が
    ございます。また、コントロールにつきましては、「作成したファイルのみ」が有効範囲と
    なります。
    シートコピーとマクロコピーしただけでは、有効にならない仕組みとなっておりますので。
    (結構複雑な仕組みとなっています…。)

    キャンセル

  • 2017/11/11 12:24

    tmkey01様 有り難うございます。
    「回答の追記事項に抵触・・」は勉強いたします。
    使用しているのはオプションボタンです。

    キャンセル

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

  • ただいまの回答率 90.75%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    印刷ジョブのキューに一部のファイルしか登録されない

    「コントロールパネル」>「デバイスとプリンター」 「iR-ADV C5045」を右クリック>「印刷ジョブの表示」 で表示される印刷ジョブウインドウに 67個のExcelファイルを

  • 解決済

    IE操作でオートメーションエラー

    お世話になっております。 ExcelVBAからIEを操作していたのですが、オートメーションエラーが発生するようになりました。 Win7, Excel2007, IE11

  • 解決済

    vba 他のブック、シートを参照時のエラー発生の原因について

    別フォルダにあるEXCELファイルの内容を一部取り込むマクロ作成時に、 ブックを開いてシートを参照する処理を実施した時、エラーが出るため エラー無視の処理を追加したら、処理がう

  • 解決済

    つExcel.マクロ.VBお助けください。

    エクセルでマクロを組んでいます   別ファイルの指定した個所の値を取り込みたいです。 途中までは動いているのですが指定した個所の値ではなく、 なぜか空白になってしまってい

  • 解決済

    エクセル VBA 別ファイルから抽出した2つの値を結合して表示

    初心者です、教えてください。 同一フォルダに別ファイル①.xlsmの春夏シートがありまして、 春夏シートのA列とアクティブシートのC列に一致した値がある場合、 1.春夏シート

  • 解決済

    別ファイルのセル 操作

    別ファイルのセルの操作ができず、困っています。 ファイルAからファイルBを開き、ファイルBを閉じるときに、ファイルAに値を反映させて、ファイルBを閉じる処理を行いたいと思ってお

  • 解決済

    Excelの例外を種類ごとに違う反応にしたい

    Excelコンポーネントで例外が発生した場合、ダイアログが表示されてしまいます。 saveasメソッドを実行した場合 「上書きしますか?」というような内容のダイアログが表示され 「

  • 解決済

    excelマクロの記録:実行時エラー5の解決方法

     前提・実現したいこと Excelでのルーティン作業(ピボットテーブルの作成)を、マクロ記録・実行して次回から自動化したいと考えています。 一通りマクロの記録を行い、実行したところ

同じタグがついた質問を見る

  • VBA

    1641questions

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

  • Excel

    1403questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。