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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Accessのテーブルを既存のExcelファイルへエクスポートしたいんですが
Access(アクセス)
-
エクセルVBAでエラー!
Excel(エクセル)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
Excelからパスワード付きAccess
その他(データベース)
-
5
ACCESS2010 WEBブラウザーコントロールにPDFを表示
Microsoft ASP
-
6
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
7
ADOで別ユーザが開いているエクセルを読み込む方法
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LINE TCBというところからLINE...
-
大学定期試験過去問サイト「過...
-
steam版 apexのログアウト方法...
-
インスタグラムでブロックされ...
-
カカオで退会せずに、アプリだ...
-
メールアドレス 上バーの入力...
-
インスタの捨て垢で友達のスト...
-
インスタのアイコンについてるN...
-
email.ne.jpのメールアドレスを...
-
Instagramからこんなメールがき...
-
解約済みの iPadについて 解約...
-
星の王子さまというアプリで、 ...
-
Excelのセルにユーザー名...
-
ビーリアルのユーザー名を変え...
-
pixivで新規登録しようと思い、...
-
インスタのアカウントの消し方...
-
YouTubeが毎回ログインしないと...
-
ログアウトのないサイトからロ...
-
メールをパスワードつきで送る方法
-
メールアドレスを人に教えるの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
メールをパスワードつきで送る方法
-
LINE TCBというところからLINE...
-
メールアドレス 上バーの入力...
-
大学定期試験過去問サイト「過...
-
メールエラー
-
メールのマナー編
-
メールアドレスで上付きのハイフン
-
インスタの捨て垢で友達のスト...
-
インスタのアイコンについてるN...
-
メールを返信したら、英語のメ...
-
steam版 apexのログアウト方法...
-
ビーリアルのユーザー名を変え...
-
メールアドレスから個人を特定...
-
携帯電話を解約してもSMSの受信...
-
「@」(アットマーク)の無いメ...
-
YouTubeが毎回ログインしないと...
-
解約済みの iPadについて 解約...
-
カカオで退会せずに、アプリだ...
-
CSVファイルを添付するときにパ...
おすすめ情報