• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:オプション名やフレーム名と変数の組み合わせControl)

Excel VBAでオプション名やフレーム名と変数を組み合わせる方法と、エラーメッセージ「subまたはfunctionが定義されていません」の解決方法

このQ&Aのポイント
  • ExcelのVBAでオプション名やフレーム名と変数を組み合わせる方法をご教示ください。
  • Controlsを使用してオプション名やフレーム名と変数を組み合わせる際に「subまたはfunctionが定義されていません」というエラーメッセージが表示されます。このエラーの原因と解決方法を教えてください。
  • VBA初心者ですが、オプション名やフレーム名と変数を組み合わせる方法について詳しく教えてください。また、エラーメッセージ「subまたはfunctionが定義されていません」が表示される場合の対処方法を知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんにちは。 Controls を Me.OLEObjects に書き換えるとどうでしょう。 あと、Range(R, C) という記述はCells(R, C) の間違い? 変数の宣言も N とFR 以外宣言しないのですか?

noname#59500
質問者

お礼

ありがとうございます! ほんとだ、RangeはCellの間違いでした! 変数の宣言は、今まで書いてきたVBAではあまりした事がなくて、それでもうまく行ってたので今回初宣言です。やっぱり絶対した方がいいものですか?とりあえず全部やってみます。 教えて頂いた通りに、Me.OLEObjectsに書き換えてみましたら今度は C = ActiveCell.colmun が「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」とはじかれます。 ワークシートに書いてるVBAだから、使えないものがあるのでしょうか?

その他の回答 (2)

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.3

"NYURYOKU.Frame" & FR & ".NO" & N & "_" & FR で表している、文字列が実際のオブジェクト名と一致しているかな? とりあえず、 Me.OLEObjects("NYURYOKU.Frame" & FR & ".NO" & N & "_" & FR).Enabled = False を  Debug.Print "NYURYOKU.Frame" & FR & ".NO" & N & "_" & FR として、イミディエイトで確認してみる。

noname#59500
質問者

お礼

イミディエイトで確認してみたら、ちゃんと表示できました。 まだ知識不足で、こういうものを作るレベルまで達してないようです。 とりあえず今回は、ユーザーフォームを使うのをやめ、ワークシート上でいろいろと操作する事にして解決できました。(VBAも使って) お世話になりました。ありがとうございます。

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

No.1です。 >C = ActiveCell.colmun が「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」とはじかれます。 colmun じゃなくて、Column です。

noname#59500
質問者

お礼

ごめんなさい。初歩的なミスでした。そこを直すと、 'OLEObjects'メソッドは失敗しました:'_Worksheet'オブジェクト というメッセージがでます。いろいろ調べてみてはいるのですが、なかなか答えが見つかりません。宜しくお願いします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim C As Long Dim N As Long Dim FR As Long C = ActiveCell.Column For R = 4 To 13 N = R - 3 If Cells(R, C) <> "" Then For FR = 1 To 6 Me.OLEObjects("NYURYOKU.Frame" & FR & ".NO" & N & "_" & FR).Enabled = False Next Else For C2 = 3 To 8 If Range(R, C2) = "" Then For FR = 1 To 6 Me.OLEObjects("NYURYOKU.Frame" & FR & ".NO" & N & "_" & FR).Enabled = False Next End If Next End If Next End Sub

関連するQ&A