WindowsVista HomePremium
Excel 2007
Microsoft Visual Basic 6.5 です。
Excelでユーザーフォーム(UserForm1)を作り、
Sub Auto_Open()
UserForm1.Show
End Sub
で起動時に呼び出すようにしました。
確認のため、一度Excelを閉じ起動し直したところ正常に動作しました。
もう一度確認のため同じように再起動をすると、
実行時エラー '2110':
コントロールが表示されていない、利用できない、またはフォーカスを持てないため、そのコントロールにフォーカスを移すことはできません。
と出て、それ以降何度やっても動作しなくなってしまいました。
解決法か原因がわかる方いらっしゃいましたら、ぜひご教授ください。よろしくおねがいします。
ユーザーフォーム関係のコードを以下に書いておきます。(内容は小遣い帳のようなものです。)
――――――――――――――――――――
Private Sub CommandButton1_Click()
Dim NUM As Integer
If TextBox1.Text = "" Then
MsgBox "概要が記入されていません。"
TextBox1.SetFocus
GoTo 100
ElseIf TextBox2.Text = "" Then
MsgBox "収支が記入されていません。"
TextBox2.SetFocus
GoTo 100
ElseIf ComboBox1.ListIndex = -1 Then
MsgBox "収支の種類が選択されていません。"
ComboBox1.SetFocus
GoTo 100
End If
Range("F6").Select
NUM = 0
Do While ActiveCell.Offset(NUM, 0) <> ""
NUM = NUM + 1
Loop
ActiveCell.Offset(NUM, 0).Select
ActiveCell = TextBox1.Value
If CheckBox1 = True Then
TextBox2 = -TextBox2
End If
If ComboBox1.ListIndex = 0 Or ComboBox1.ListIndex = 1 Then
ActiveCell.Offset(0, ComboBox1.ListIndex + 1) = TextBox2.Value
Else
ActiveCell.Offset(0, ComboBox1.ListIndex + 2) = TextBox2.Value
End If
TextBox1 = ""
TextBox2 = ""
CheckBox = Falses
ComboBox1.ListIndex = -1
100 End Sub
――――――――――――――――――――
Private Sub CommandButton2_Click()
Dim NUM As Integer
If TextBox3.Text = "" Then
MsgBox "移動金額が記入されていません。"
TextBox3.SetFocus
GoTo 100
ElseIf ComboBox2.Text = "" Then
MsgBox "移動元が選択されていません。"
ComboBox2.SetFocus
GoTo 100
ElseIf ComboBox3.ListIndex = -1 Then
MsgBox "移動先が選択されていません。"
ComboBox3.SetFocus
GoTo 100
End If
Range("F6").Select
NUM = 0
Do While ActiveCell.Offset(NUM, 0) <> ""
NUM = NUM + 1
Loop
ActiveCell.Offset(NUM, 0).Select
ActiveCell = "移動"
If ComboBox2.ListIndex = 0 Or ComboBox2.ListIndex = 1 Then
ActiveCell.Offset(0, ComboBox2.ListIndex + 1) = -TextBox3.Value
Else
ActiveCell.Offset(0, ComboBox2.ListIndex + 2) = -TextBox3.Value
End If
If ComboBox3.ListIndex = 0 Or ComboBox3.ListIndex = 1 Then
ActiveCell.Offset(0, ComboBox3.ListIndex + 1) = TextBox3.Value
Else
ActiveCell.Offset(0, ComboBox3.ListIndex + 2) = TextBox3.Value
End If
TextBox3 = ""
ComboBox2.ListIndex = -1
ComboBox3.ListIndex = -1
100 End Sub
――――――――――――――――――――
Private Sub CommandButton3_Click()
Unload Me
End Sub
――――――――――――――――――――
Private Sub CommandButton4_Click()
Unload Me
End Sub
――――――――――――――――――――
Private Sub UserForm_Initialize()
myarray1 = Array("収支", "クレジット", "郵便局", "机", "500", "1")
For i = 0 To 5
ComboBox1.AddItem myarray1(i)
ComboBox2.AddItem myarray1(i)
ComboBox3.AddItem myarray1(i)
Next i
TextBox1.SetFocus
End Sub
No.1ベストアンサー
- 回答日時:
こんばんは。
Auto_Open の代わりに、ThisWorkbook モジュールのWorkbook_Open イベントは試してみましたか。
これは、ダメ元ですが、Auto_Open は、反応が遅いです。
それと、今回の原因は、Excel 2007 のActive X コントロールのセキュリティの関係で、起動までに手間が掛かるのではないでしょうか。
その場合は、OnTime で、タイムラグを作るしかないと思います。ほんの数秒でかまわないはずです。
Sub Auto_Open()
Application.OnTime Now() + TimeValue("00:00:02"), "Start1"
'2秒待つ
End Sub
Sub Start1()
UserForm1.Show
End Sub
なお、すべてのコードは見ていませんが、UserForm_Initialize() で、
TextBox1.SetFocus
は、必要ですか。ふつうは、TabIndex を0にすればよいと思います。
それから、ループは不要ですね。
Dim MyArray1()
MyArray1 = Array("収支", "クレジット", "郵便局", "机", "500", "1")
ComboBox1.List = MyArray1()
ComboBox2.List = MyArray1()
ComboBox3.List = MyArray1()
となりますね。
こんばんは。
早速の回答、ありがとうございます。
Auto_Open()をWorkbook_Open()に変えたところ、正常に動作しました!
ComboBoxもそういう入れ方があるんですね…。
まだまだVBA歴3日なので、知らないことばかりです^^ゞ
TextBox1.SetFoucusは仰る通り不要でした。
ご指摘ありがとうございます^^
こんなに早く解決するとは思ってませんでした。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) VBA 同日で2回目(午後)の体温を登録するときのコード 3 2022/08/28 20:29
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
エクセルのエラー文について
その他(Microsoft Office)
-
UserForm1.Showでエラーになります。
工学
-
ExcelのVBAでフォームが表示されない
Excel(エクセル)
-
-
4
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
ユーザーフォームのSetFocusが働かない?
その他(プログラミング・Web制作)
-
7
VBAでのユーザーフォーム上でのタブオーダーの移動の方法
その他(プログラミング・Web制作)
-
8
VB6,リストボックスの特定行の色変更は可能?
Visual Basic(VBA)
-
9
リストボックスの特定行の背景色
Visual Basic(VBA)
-
10
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
11
エクセルVBA マルチページのSetFocus
PowerPoint(パワーポイント)
-
12
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
13
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
14
変数をコントロール型で使用する方法
Visual Basic(VBA)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
アクセスのマクロ
Visual Basic(VBA)
-
17
コンボボックスのインデックスが不正
Visual Basic(VBA)
-
18
エクセルVBA テキストボックスへのセットフォーカスについて
Visual Basic(VBA)
-
19
Access サブフォームでの選択行の取得
その他(データベース)
-
20
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ACCESS】フォーム名/コントロ...
-
iphoneのフルスクリーンの解除方法
-
ACCESSのフォームからハイパー...
-
Excel ユーザーフォーム呼び出...
-
access setfocusについて
-
ACCESSでコントロールソースの変更
-
Access・VBAで、Controlsを使用...
-
Accessのフォームにて、詳細行...
-
Excel 入力規則 リスト 複数...
-
Accessの連結、非連結とは何?
-
AutoCAD 画層管理コントロール...
-
アクセスフォームで2つを結合テ...
-
データベースのINT型項目にNULL...
-
アクセスでテキストボックスの...
-
Accessレポートのチェックボッ...
-
passwordが入れられません・・・・
-
Access レポート印刷するときに...
-
フォームで入力しても反映されない
-
「フォームを作成できませんで...
-
レコードを保存するコード ア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ACCESS】フォーム名/コントロ...
-
Accessのフォームにて、詳細行...
-
ACCESSでコントロールソースの変更
-
Accessでフィールド名を変数(...
-
ACCESSのフォームからハイパー...
-
iphoneのフルスクリーンの解除方法
-
Excel 入力規則 リスト 複数...
-
Excel ユーザーフォーム呼び出...
-
アクセスで、チェックボックス...
-
コントロールソースって
-
アクセスのフォームの区切り線...
-
Accessの連結、非連結とは何?
-
ACCESS テキストボック...
-
アクセスのフォームでテキスト...
-
Access・VBAで、Controlsを使用...
-
【Access】サブフォームの項目...
-
access 改ページコントロール
-
access setfocusについて
-
アクセスフォームで2つを結合テ...
-
「フォーカスのあるフィールド...
おすすめ情報