![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ADOを使いエクセルファイルを更新モードでオープンしたいのですが、このエクセルファイルにパスワード(例:読み込み用:aaa、書き込み用:bbb)が設定されていたら、どのように記述すれば良いですか。
パスワードが設定されていない場合は、下記の記述でうまくいきます。
ご存知の方がいらっしゃいましたら、よろしくお願い致します。
'ADOオブジェクトを作成
Set objADO = CreateObject("ADODB.Connection")
'更新モードでオープン
objADO.Open "Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & SavePath & ";" & "ReadOnly=0"
No.1ベストアンサー
- 回答日時:
> objADO.Open "Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & SavePath & ";" & "ReadOnly=0"
上記の接続手法はODBC接続なので、
Excelファイルのパスワードまでをも管理する機能は、ODBC・Excelドライバにはありません。
Windows側でODBC設定でExcelドライバを指定して接続定義する画面を開くと良くわかるかと思いますが、
Excel側で設定しているパスワードも設定し、自動接続するようなことが
できないのがおわかり頂けるかと思います。
理由は、パスワード機能はあくまで「Excel」の機能であり、
「ODBC」の機能ではないので、ODBC接続にExcelパスワードを設定することは不可能ということになります。
とにかく接続!というのも大事ですが、まずは上記の本質をご理解した上で、問題の回避方法を説明します。
ADOでExcelファイルを開いた後、ADO+ ODBC接続でExcelを開くのではなく、「Excel.Application」というオブジェクトを使ってExcelを開くとパスワード入りのExcelファイルを開けるようになります。
こんな感じで・・・(細かい引数などは間違っているかもしれないので、とりあえず感覚だけでもつかんでいただければ)
Set xlsApp = Server.CreateObject("Excel.Application")
Set xlsBook = xlsApp.Workbooks.Open(strGetFileName, , , ,"読み取り用か書き込み用のパスワード")
.
.
.
ワークブック(Excel)のパスワード自動入力させるやり方は、
http://okwave.jp/qa1693505.html あたりに掲載されています。
また、ASP側でExcelを操作する方法は、
http://okwave.jp/qa457833.html
あたりをご参考にいただければと思います。
それから関係ないんですが、「ReadOnly=0」ではなく、「ReadOnly=False」と書いても動きますので、0, 1でReadOnly属性を設定するのは客観的にわかりずらいので、お勧めできません。
読み取り専用ならその反対で、「ReadOnly=True」になります。
それでは、宜しくお願いします。
参考URL:http://okwave.jp/qa1693505.html
この回答への補足
Excel.Applicationを使ってやってみたのですが、ブラウザが制御不能になってしまい、うまくいきませんでした。引数の記述の仕方を調べたのですが、はっきりしたことがわからず、試行錯誤してみましたが、だめでした。
結局、最終的には、パスワードを設定したエクセルファイルを扱わないで済むよう、仕様を変更したため、この問題については、解決しないままになってしまいました。せっかくご回答をいただいたのに、すみませんでした。
丁寧なご回答、ありがとうございます。しばらくチェックしていなかったため、今気がつきました。
上記を参考にして、やってみます。その後、またご報告したいと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) OFFICEに詳しい方 Microsoft 365 personal をを使ってます。(¥1,284 1 2023/02/20 16:40
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
- Access(アクセス) Access2016のExcelインポートの機能のことで教えてください 1 2022/09/11 14:58
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
携帯電話を解約してもSMSの受信...
-
ユニクロやGUのシフト管理アプ...
-
星の王子さまというアプリで、 ...
-
YouTubeが毎回ログインしないと...
-
インスタで高校生からオフパコ...
-
X(Twitter)が乗っ取られたかも...
-
高一男子です 僕が絶対に悪いん...
-
URLとメールアドレス
-
解約済みの iPadについて 解約...
-
メールアドレスやパスワードの...
-
Excelのセルにユーザー名...
-
インスタの捨て垢で友達のスト...
-
存在しないアドレスにメールを...
-
LINE Payで友だちに送金しよう...
-
メールアドレスで上付きのハイフン
-
LINE TCBというところからLINE...
-
ログアウトのないサイトからロ...
-
昔に使っていたインスタグラム...
-
メールアドレスからどこまで分...
-
メールアドレスから個人を特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
メールをパスワードつきで送る方法
-
メールアドレスで上付きのハイフン
-
メールのマナー編
-
インスタの捨て垢で友達のスト...
-
メールを返信したら、英語のメ...
-
YouTubeが毎回ログインしないと...
-
メールアドレス 上バーの入力...
-
LINE TCBというところからLINE...
-
CSVファイルを添付するときにパ...
-
LINE Payで友だちに送金しよう...
-
存在しないアドレスにメールを...
-
URLとメールアドレス
-
iPhoneのiCloudメールなよです...
-
星の王子さまというアプリで、 ...
-
カカオで退会せずに、アプリだ...
-
メールアドレスから個人を特定...
-
携帯電話を解約してもSMSの受信...
-
ユニクロやGUのシフト管理アプ...
-
解約済みの iPadについて 解約...
おすすめ情報