いつもお世話になります
人の古いプログラムで標準モジュールから、ユーザフォームのSubroutineを
呼び出しているのですが(Dialog Open)
「オブジェクトが必要です」というエラーが出ます
自分はこんな使い方をしたことがないのでよく分からないので
教えてもらいたく投稿しました。
(標準モジュール)
'**********************************
' ファイルデータ入力
'**********************************
Public Sub ①データ読込み(Optional IsMsg)
With Application
.SheetsInNewWorkbook = 3
End With
'
UserForm1.cmdGetTabFile_Click ' Dialog Open
If IsGetCancel = False Then
Call GetPaste
End If
End Sub
(UserForm1)
Public Sub cmdGetTabFile_Click()
Dim filename As String
IsGetCancel = True
With CommonDialog1
If strInTextDIR = "" Then
strInTextDIR = CurDir
End If
Application.DefaultFilePath = strInTextDIR
.InitDir = strInTextDIR
.CancelError = False
.filename = ""
.Filter = "断面照査データ(*.TXT)|*.TXT|全て|*.*"
.ShowOpen
If .filename = "" Then
Exit Sub
End If
If Dir(.filename) = "" Then
MsgBox "No FIle " & .filename
Exit Sub
End If
TabFileNAME = .filename
IsGetCancel = False
End With
strInTextDIR = getFilePath(TabFileNAME)
End Sub
以上、よろしくお願い申し上げます
No.1ベストアンサー
- 回答日時:
こんにちは
どのような仕組みになっているのか、ご提示の内容だけでは不明ですが・・
普通のプロシージャであれば、ご提示の方法で呼ぶことは可能と思います。
試しに、現状のPublic Sub cmdGetTabFile_Click()を別名にしておいて、
Public Sub cmdGetTabFile_Click()
MsgBox "Test OK"
End Sub
のようなものを追加して、実行してみると実行できませんか?
※ 想像するところ、cmdGetTabFile_Clickはカスタム定義のイベントではないかと思いますが、そちらの定義が関係しているのかも知れません。
上記で実行できない場合は、一旦、イベント設定を外して実行してみれば、とりあえず呼び出せるのではないかと推測します。
(対象のモジュール名が「UserForm1」ではない、というオチでなければ・・)
もし実行できるようなら、呼び出し側の問題ではなく、実行条件等の問題ではないかと推測しますが、内容が不明なのでこれ以上はわかりかねます。
もしも、ご提示のcmdGetTabFile_Clickの内容が、単独実行可能な内容であるなら、現状の内容を別名のプロシージャとして、標準モジュールに新たに設定し、現状のプロシージャを
Public Sub cmdGetTabFile_Click()
Call 新しく作成したプロシージャ
End Sub
として再定義すれば、現状の機能はそのまま維持できるはずです。
その上で、呼び出し側の呼び出し名を「新しく作成したプロシージャ」とすれば実行できるはずですが、多分、原因は別のところにあるのでしょうから、やはりエラーになるのではないかと推測しますけれど・・
こちらの場合であれば、エラー表示の行位置が変わると思いますので、多少は前進になるのではと思います。
いつもお世話様です
中途半端な質問で申し訳ございませんでした
会社の同僚から動かないと言われ
ちょっと見てあげたのですが、別のプログラムを紹介しました
ただし動かない理由を説明したかったので助かりました
ありがとうございました
これからもよろしくお願いいたします
No.2
- 回答日時:
CommonDialog は Microsoft Common Dialog Control 6.0 がインストールされていなければなりません。
https://www.microsoft.com/ja-jp/download/details …
また、CommonDialog は64bitのOfficeでは動作しません。
Application.GetOpenFilename() を利用するよう変更してください。
https://learn.microsoft.com/ja-jp/office/vba/api …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel VBAでメールを送る方法について 2 2021/11/03 15:34
- Visual Basic(VBA) Excel VBAでフォルダ内の全テキストファイルの任意データを取得について 7 2021/12/18 16:00
- Word(ワード) word_VBA_フォームからダイアログそこからの復帰について 2 2021/12/13 23:44
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
- Visual Basic(VBA) VBA excelからメールを送る方法について 1 2021/11/03 11:30
- Visual Basic(VBA) サブフォルダ含むすべてのフォルダの Excel 検索 4 2021/12/13 09:33
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Visual Basic(VBA) EXCLE VBA シートクリックしたら該当シートコピー 1 2021/11/11 16:37
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
VBAです。ユーザーフォームの表示させ、標準モジュールを読み込ませる方法について
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
-
4
他のフォームから別のフォームのサブルーチンを呼び出す
Visual Basic(VBA)
-
5
Excel VBAで、ユーザーフォームの値を、モジュールで使用したい。
Visual Basic(VBA)
-
6
別のユーザーフォームのコマンドボタンを押す
Visual Basic(VBA)
-
7
標準モジュールからフォームをコントロールしたい
Visual Basic(VBA)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
private subモジュールを他のモジュールから呼び出して使う方法を教えてください(-.-)
Visual Basic(VBA)
-
11
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
12
VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます
Visual Basic(VBA)
-
13
フレーム内に移動したい
Visual Basic(VBA)
-
14
モジュールからフォームのボタンをクリックするには?
Access(アクセス)
-
15
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
16
ExcelVBAで、ユーザーフォームを新規Bookにコピーしたい
IT・エンジニアリング
-
17
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
18
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
19
フォーム上の現在アクティブなコントロールの取得
Access(アクセス)
-
20
TextBoxコントロールを引数として渡すには?
その他(教育・科学・学問)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
VBAで別モジュールへの変数の受...
-
Excelで時刻になったら知らせて...
-
Excel VBA 『Call』で呼び出す...
-
標準モジュールを削除したい。(...
-
VBAで旧字体を異字体に一括で変...
-
エクセルVBA クラスモジュール...
-
VBでグローバル変数を宣言するには
-
モジュールの最大数はいくつな...
-
モジュールとクラスの違いって...
-
ユーザー定義関数に#NAME?が返...
-
エクセルVBAでシートモジュール...
-
【vba】フォームに書いてあ...
-
シリアルポート制御
-
グラフのX,Y座標を取得したい
-
linux/module.h インクルードで...
-
ベースモジュールって?
-
関数の引数にクラスを使いたい
-
エクセルVBAで標準モジュー...
-
Form間の値の渡し方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
VBでグローバル変数を宣言するには
-
グラフのX,Y座標を取得したい
-
VBA This Workbookモジュール...
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
VBAで旧字体を異字体に一括で変...
-
vba userFormのSubを標準モジュ...
-
ベースモジュールって?
-
標準モジュールを削除したい。(...
-
Access VBA標準モジュールにつ...
-
Form間の値の渡し方
-
VBAProjectのモジュ...
-
'Range'メソッドは失敗しました
おすすめ情報
いつもお世話様です
CommonDialog1が追加されていないからですかね
その他のコントロール追加で探しても見つからないですね
もう無いのかも?
そこだけ教えてもらっても良いですか?
以上、よろしくお願いいたします