質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2917閲覧

PythonをVBから起動するときに、ファイルの検索に失敗する。

donadona999s

総合スコア16

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/08/07 06:09

編集2019/08/07 11:34

お世話になります。
現在エクセルのマクロからpythonのスクリプトを実行しようとしております。
python単体だと問題ないのですが、VBからpythonを起動だと、参照先の「part_num.csv」が見つかりませんと出力されます。
ファイルが存在するのは確認済みです。
上記記載の通り、pythonをコマンドプロンプトから起動すると正常に動作します。
どなたか、なぜVBからだとファイルが見つからないかわかりますでしょうか?

*スクリプトを変更しました。

Error

Traceback (most recent call last):

File "<string>", line 1, in <module>

File "c:_____省略\python_lesson\property_check.py", line 7, in <module>

with open('part_num.csv') as f:

FileNotFoundError: [Errno 2] No such file or directory: 'part_num.csv'

VB

1 Call RunPython("import property_check;property_check.property_check()")

Python

1import os 2import csv 3import shutil 4import requests 5import PyPDF2 6import xlwings as xw 7 8def property_check(): 9 path = os.getcwd() 10 path = path + '/part_num.csv' 11# print(path) 12 with open(path) as f: 13 reader = csv.reader(f) 14 for row in reader: 15 filename = row[0] 16 pdf = PyPDF2.PdfFileReader('DATASHEET/' + filename) 17 Pdf_name = filename 18 for k in pdf.documentInfo.keys(): 19 if k == '/ModDate': 20 ModDate = pdf.documentInfo[k] 21 if k == '/CreationDate': 22 CreationDate = pdf.documentInfo[k] 23 l = [Pdf_name,ModDate,CreationDate] 24# print(l) 25 with open('result.csv', 'a') as f: 26 writer = csv.writer(f, lineterminator='\n') 27 writer.writerow(l)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

VBから呼び出したときのカレントディレクトリが、その part_num.csv のある場所ではないからだと思います。

Python内で絶対PATHで指定するか、Pythonを呼び出す時にその辺りの情報を引数で渡してあげるか、すると良いと思います。

投稿2019/08/07 09:13

mokemokechicken

総合スコア948

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

donadona999s

2019/08/07 11:32

お世話になります。 pythonのスクリプトを質問の箇所で更新しました。 ディレクトリ情報を取得して試しました。 コマンドプロンプトでは実行できるにも関わらず、相変わらずファイルが見つかりません。 --------------------------- Error --------------------------- Traceback (most recent call last): File "<string>", line 1, in <module> File "c:\users\11889\desktop\box sync\11889\一時退避\python_lesson\property_check.py", line 12, in property_check with open(path) as f: FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\11889\Documents/part_num.csv' Press Ctrl+C to copy this message to the clipboard. --------------------------- OK ---------------------------
mokemokechicken

2019/08/07 11:58 編集

`C:\Users\11889\Documents/part_num.csv` というファイルは実際にあるのでしょうか? あと、Windows環境独特の問題ですが、ディレクトリの区切りが `/` と `\` が混在していても大丈夫なんでしょうか?
donadona999s

2019/08/08 23:39

お世話になります。 ファイルは実際にあります。 たしかにディレクトリの区切りの問題かもしれません。 さっそく試します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問