![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
上記のエラーが出て困っています。
仕事の就業報告書を書こうと、会社から配られたマクロの組まれたエクセルファイルを開き、
マクロの有効化ボタンを押すと
「ランタイムエラー1004 DialogSheetクラスのエディタボックスのプロパティが取得できません」
なるエラーが出てきてしまい、本来表示されるはずの年月・社員番号・名前を入力するウィンドウが出てきません。
一番謎なのは、別のパソコンでそのファイルを開くとマクロが正常に動くことです。
土日は会社が休みなので、会社に聞くことも出来ず・・皆さんの力をお借りしたいです。
どちらのパソコンもOSはWindows7、使用しているのはMicrosoft Office2010のexcelです。
どのような原因が考えられられますでしょうか?
あまり詳しくないので、どのような情報を提供すればよいのか分かりません。
何か皆さんが知りたいこと・確認作業が必要なら、そちらも教えていただけると幸いです。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
#2の回答者です。
>1と書かれたダイアログボックスが表示されました。これは、シートは存在していると言う事でしょうか?
はい! ダイアログシートはあります。そして、ダイアログ・シートは開きましたか?
まず、私の心配していた、ロックは掛かっていなかったようですね。
次に、エディットボックスが存在しているか、生きているか、という所を確認してみてください。エラーが出るでしょうか?ダメな場合は、再度、貼り付けるしかありません。
Excel 2010 の場合は、[開発タブ]--[挿入]--[フォームコントロール]--[テキストフィールド]
です。ダイアログ・ボックス上で、カーソルが+(プラス)に変わったら、エディットボックスが作れます。以下のように、EditBoxes(1),EditBoxes(2) ... というスタイルにしている限りは、読み取れるはずです。
基本的には、元のマクロにも、同様の構文があるはずです。
'最初に、1番目のEditBoxに文字を入れてみてください。白抜きの所で二度クリックします。
'そうしてこのマクロを実行したらどうなりますか?
Sub Test2()
MsgBox DialogSheets(1).EditBoxes(1).Text '←プロパティは、.Text のみです。
End Sub
これでダメだと、私には、今のところ、他に思いつく所がありません。
どうやら私の使っているOfficeが英語版なため、値を取得する際の名称が違うだけでした。おかげさまで解決できました。ありがとうございました。
No.3
- 回答日時:
こんにちは。
確認作業としては、
まず、DialogSheet は、存在していますか?
ふつう、Excel 2010 でも、DialogSheet は動きますが、別のオブジェクトが邪魔をしているのかもしれませんね。そうすると、ネットからの指示では難しいです。
どこのVBEditor の画面でもよいので、以下を貼り付けます。
(プロテクトが掛かってはいませんよね。)
'//
Sub Test()
MsgBox DialogSheets.Count 'ひとつなら、1が出ます。
If DialogSheets.Count > 0 Then
DialogSheets(1).Activate 'とりあえず、ダイアログシートの1つを開けます。
End If
End Sub
'//
この後、オブジェクトが正しく貼り付けられているか確認してください。もしかしたら、消えているかもしれませんね。その場合は、一端、元のコードで、エディタ・ボックスの部分を知らないといけないかもしれません。
回答ありがとうございます。
書いていただいたコードを貼り付けて実行してみたところ、1と書かれたダイアログボックスが表示されました。これは、シートは存在していると言う事でしょうか?
No.1
- 回答日時:
DialogSheetを使っているという事はかなり古いエクセルファイルのようですね。
一度Officeの修復をされてみてはいかがでしょう。
http://office.microsoft.com/ja-jp/excel-help/HA0 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
複数ファイルにある特定のシー...
-
EXCELのセルへ、デジタル時計を...
-
マクロ 実行ボタンを押さずに...
-
Wordの画面を左右にスクロール...
-
エクセル グラフの軸の最小値最...
-
Excelを開いた時に表示さ...
-
Excel VBA のdebug(F8キー) が...
-
選択範囲の反転
-
Excelの改ページ 同シート内で...
-
パワーポイントで、スライドご...
-
[EXCEL2000]重複データを除去す...
-
Excelのマクロを実行中に、ダウ...
-
Excelマクロでオプションボタン...
-
Excel2000 データの並べ替えで...
-
ワードで画像を自動で挿入する方法
-
UWSCの簡単なキーマクロなので...
-
Excelのマクロ ランタイムエラ...
-
エクセルのマクロショートカッ...
-
TeraTermのマクロについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
複数ファイルにある特定のシー...
-
Excelを開いた時に表示さ...
-
Excel VBA のdebug(F8キー) が...
-
Excelのワークシート上に検索窓...
-
エラーになってないのにVBA...
-
【ExcelVBA】名前を付けて保存→...
-
エクセル グラフの軸の最小値最...
-
エクセルのマクロ機能で前のシ...
-
Wordの画面を左右にスクロール...
-
ワードからエクセルへ貼り付け...
-
Wordで「原稿用紙○枚」を換算す...
-
モジュール内のマクロを全て実...
-
エクセルで複数のシートをまと...
-
EXCEL 複数のシートの同一の位...
-
【Excel VBA】エラー番号400
-
TeraTermのマクロについて
-
ワードで画像を自動で挿入する方法
おすすめ情報