プロが教える店舗&オフィスのセキュリティ対策術

初めまして、VBA初心者です。
前任者(退職)が作成したものがエラーで使用出来なくなりました。
仕事の効率が悪いので、一から作り直ししているのですが、最後の動作がどうしても出来ません。゚(つД`)゚。
●フォームを開く(当日の日付がテキストに表示される)
↓品名入力(リストボックスに候補表示→選択)
↓選択品名の詳細を表示(ラベルに対応するファイルNo.、シート名、ファイル名などが表示されます)
↓ロットNo.、数量をテキストに入力
↓登録ボタンを押す
日付、選択品名、ロットNo.、数量を入荷シートの最終行へ入力。
★☆サーバーからラベルに表示されている「ファイルNo._ファイル名.xls」を開いて印刷☆★

色々いじり過ぎて変な事になってると思いますが、今の状況が下記です。

Sub UF1Print()
Const Server As String = “¥¥111.222.3.444¥01_入荷¥品物別エクセル”
Dim ISnum As String, MyPath As String, Fname As String

Application.ScreenUpdating = False
ISnum = “Label103” ‘シート名
MyPath = Dir(Server & “¥” & “Label101” & “_” & “Label102” & “.xls”) ‘パス
Fname = “Label101” & “_” & “Label102” & “.xls” ‘ファイル名

If Dir(MyPath) = “” Then
MsgBox “指定されたファイルが見つかりません。”
Exit Sub
End If

Workbooks.Open Filename:=Server & “¥” & MuPath
Workbooks(Fname).Worksheets(ISnum).Select

Application.ScreenUpdating = True
End Sub

よろしくお願いします!!

質問者からの補足コメント

  • めぐみん様のご指摘で、あ!っと閃いて完成する事が出来たのでベストアンサーはめぐみん様に!
    皆さまありがとうございましたm(_ _)m

    【変更した事】
    ☆ ISnum、MyPath、Fnameの前後にWith UserForm1 / End Withを追加
    ☆ラベルの部分を .Label103.Captionに変更
    ☆ワークシートを開くところのServerを削除(重複)

      補足日時:2018/04/04 10:02

A 回答 (5件)

No.3です。



Labelを活かしたいなら、

ISnum = Label103.Caption ‘シート名
MyPath = Server & “¥” & Label101.Caption & “_” & Label102.Caption & “.xls” ‘パス
Fname = Label101.Caption & “_” & Label102.Caption & “.xls” ‘ファイル名

前後の " " は取りましょうね。
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。
しかし、" " を取ってしまうと「変数の定義がされていません。」と出てしまいます。
Dim ISnum As String, MyPhath As String, Fname As String
この部分を変更したらよいのでしょうか?
初歩的な事ですみません。
よろしくお願いしますm(_ _)m

お礼日時:2018/04/04 09:27

MyPath = Dir(Server & “¥” & “Label101” & “_” & “Label102” & “.xls”) ‘パス


のあとに
If Dir(MyPath) = “” Then
となっています。

もし MyPath が ”" (つまりファイル名が存在しない)であれば、Dir(MyPath) = “” にはなりません。
( Dir("") で試してみて下さい。)

MyPath = Dir(Server & “¥” & “Label101” & “_” & “Label102” & “.xls”) ‘パス
のDir関数は不要なのではないかと思いますがいかがでしょう?
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

ISnum = “Label103.Caption” ‘シート名
MyPath = Server & “¥” & “Label101.Caption” & “_” & “Label102.Caption” & “.xls” ‘パス
Fname = “Label101.Caption” & “_” & “Label102.Caption” & “.xls” ‘ファイル名

上記で実行したところ、メッセージが表示されました。
実行ファイルと同じ場所に開くファイルを置いてやってみます!!
ありがとうございますm(_ _)m

お礼日時:2018/04/03 16:57

ネットワークに繋がった別のパソコン等に、



>MyPath = Dir(Server & “¥” & “Label101” & “_” & “Label102” & “.xls”) ‘パス

DIR関数使えるようになったのですか?
⇒昔は使えなかったのですが。
https://www.google.co.jp/search?q=%E3%83%8D%E3%8 …

あと

>“Label103” ‘シート名
>“Label101”
>“Label102”

これらって『この文字列であっているの?』それとも『コントロール:Labelの値を当てはめるつもりなの?』
後者なら前後の " " は不要ですよ。
.Caption はつけた方がよいとは思いますけど。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
ラベルの値を当てはめたかったので、.Captionを付けて " " を外したら「変数が定義されていません。」になりました…。
.Captionを付けた上で " " を付けたら
実行時エラー'1004'の¥¥から指定したServerの場所が見つからないと出たので、ファイルの場所に問題があるみたい?
サーバーやファイルの場所を再度、調べてみます!
ありがとうございますm(_ _)m

お礼日時:2018/04/03 16:39

No.1です。



>会社のパソコンから投稿出来なかったので、手打ちです(´ω`;)

お示しのコードを拝見するとダブルクォーテーションも半角になっていないようですが、
これも打ち間違いですかね?

それ以外でエラーになるとするとファイルが存在しない!といった内容のエラーになると思うのですが・・・
そんなダイアログボックスは表示されませんか?

たとえば拡張子が違うとか・・・

※ ちなみにこちらでファイル名「Label101_Label102」というファイルを一つ作成し保存後
お示しのコードを試してみるとちゃんとファイルが開き
「Label103」というSheetがアクティブになりました。m(_ _)m
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
ダブルクォーテーションも手打ちミスです…
スマホだと英文は面倒ですね。゚(つД`)゚。

めぐみんさんのアドバイス通りに変更したら、ファイルが存在しないと言うエラーに変わりました。
拡張子やサーバーアドレス、ファイル名も間違っていないようなので、セキュリティとかも関係しているのでしょうか?
ローカルに移動して試してみようと思います!
ありがとうございますm(_ _)m

お礼日時:2018/04/03 16:44

こんにちは!



上記コードはVBE画面のコードをそのままコピー&ペーストされたのでしょうか?
そうであれば単純に入力ミスだと思うのですが・・・

>Workbooks.Open Filename:=Server & “¥” & MuPath

>Workbooks.Open Filename:=Server & “¥” & MyPath

「y」と「u」の違い?m(_ _)m
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます!!
会社のパソコンから投稿出来なかったので、手打ちです(´ω`;)
データを確認したらちゃんと「MyPath」でした!!
なぜメッセージが出ちゃうのかな…

お礼日時:2018/04/03 15:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!