アフィリエイト広告を利用しています
検索
カテゴリーアーカイブ
タグクラウド
最新記事

2020年06月01日

【Excel VBA】Workbook_openで「パス名が無効です」

突然の出会い


ブックを開くときにフォームを表示する。

Private Sub Workbook_Open()
 UserForm1.Show vbModeless
End Sub


よくあるやつ。

いつも通りに書いて、ファイルを開きなおしたら
20200530_1.png
Σ(゚Д゚)
なんで!?

[OK]を押したら、そのままファイル閉じた・・・。

もう1回ファイルを開いたら、エラーは出ないけど、Excelのタイトルバーに、ファイル名[修復済み].xlsmって出てる。
こ、壊れた・・・??

まだそんなに作りこんでなかったから、新規ブックにモジュールをインポートしてもう一回。

やっぱり同じエラーが出る。



コード特定

セーフモードでファイルを開いて、Private Sub Workbook_Open()から実行してみたら、

UserForm1.Show vbModeless

で止まりました。
えええぇぇ!?



環境?

エラーが出たのは、Win10 64bit + Office2019 64bit。

埃かぶってるサブノートPCを引っぱり出してみた。
この子はWin7 32bit + Office2010 32bit。
(サポート切れてるけど、完全オフラインだから許してw)

こっちでも出た。



対策

修復済みになったファイルで、フォームを実行するとエラーは出ないでちゃんと表示されるから、コードに問題はなさそうなんだけどなぁ。

いつもと違うとこ・・・。

うーーーん。



アッ!!
今回だけいつもと違うとこあった!!!

いつもはチェックボックスのValueは都度コードで判定してるんだけど、今回は数が多くてめんどくさいのと、今後増減の可能性大だから、セルにリンクさせてた!

片っ端からControlSorceのセル番地を削除してみたら、エラーは消えましたヾ(*´∀`*)ノ

でも・・・、リンクセル使いたい(>ω<)
とゆーか、リンクセル前提で作っちゃったもん。
使えないと困る。
設計からやり直し、めんどくさい。


ダメもとで、InitializeでControlSorceを設定したら、エラーは出ませんでした♪
こんなカンジ。

Private Sub UserForm_Initialize()
 Cbox1.ControlSource = "Sheet1!A1"
End Sub




調査

さんざんググってみたけど、「パス名が無効です」は、ファイル関連ばっか。
MSDNも見つからなかったです。
見つけた方、是非教えてください。

てか、ControlSorceが原因なのに、「パス名が無効です」ってエラーメッセージおかしいよ!
つかそもそも、エラーがMsgBoxで出てくるってどーゆーこと!?
ふつーだったら
20200530_2.jpg
こーゆーのでしょ。
MsgBoxのエラーなんて初めて見た。
しかもMsgBoxだったらふつーは、タイトルバーはExcelかMicrosoft Excelじゃない?

絶対VBAのバグだと疑ってます。



追記

TextBoxのControlSourceと、ListBoxのRowSourceでも出ました。










タグ:バグ Excel VBA
プロフィール
へなちょこさんの画像
へなちょこ
都内に出没するOLっぽい何か。大好物はExcelと効率化。独学でVBAやAccessをいじり始め、早10年。 5歩歩くと忘れてしまうので、ここにメモしていきます。
プロフィール
記事ランキング
  1. 1. 【Excel VBA】ユーザーフォームのCaptionが文字化け
  2. 2. 【Office365 SharePoint】Notesへのリンクを貼りたい
  3. 3. 【Excel VBA】StatusBarが表示されない
  4. 4. 【Excel VBA】入力規則でアプリケーション定義エラー
  5. 5. 【Excel】最大化で起動してくれない件
  6. 6. 【Excel VBA】Workbook_openで「パス名が無効です」
  7. 7. 【Excel VBA】.xlsm→.xlsx保存でエラー
  8. 8. 【Win10】タスクバーのプレビューを非表示にしたい
  9. 9. 【Win10】エクスプローラーがフリーズする
  10. 10. 【Win10】再発!!PC再起動すると、クイック起動バーが消える
ファン