• ベストアンサー

エクセルで、PW付きのファイルを開くには?

Sub Macro1() Workbooks.Open Filename:="C:\Users\test.xlsx",,,0000 End Sub だと赤文字になってしまうのですが、どうすればいいでしょうか? パスワードは0000だとします。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

Workbooks.Open "C:\Users\test.xlsx",,,,"0000" カンマの数を数えられないときは、キチンと名前付き引数を添えて Workbooks.Open Filename:="C:\Users\test.xlsx",password:="0000" とします。

zugvebwoesn
質問者

お礼

ありがとうございました。

その他の回答 (2)

回答No.3

答えとしては No.2 さんのご回答で完結していますが、若干の補足を。ベストアンサーは辞退します。 No.2 さんがお示しのとおり、「,,,,」という形式で書くときは逆に、引数の名前「Filename:=」という記述は混ぜないでください。 また、引数の種類が 2、3 個ならどちらの書き方でもいいですが、Workbooks.Open メソッドでは 15 個ですし、何十個にも及ぶものもたくさんあります。そうしたときに「,,,,」の形式では、コードの可読性が著しく下がるので(「,」を数えること&位置を覚えることがたいへん)、できれば引数の名前を書くことが望ましいです。 なお API 関数を呼び出すときなどに出てくる alias(エイリアス)という言葉は、「別名」という意味の、英会話でも使える一般的な単語で、関数の別名のことを言っていますが、VBA の名前付き引数(named argument)の場合は、だいたい「名前」という呼び方がされています。「Filename」や「password」のことです。

zugvebwoesn
質問者

お礼

ありがとうございました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

パスワードって「文字列」だから。ダブルクォートで囲む必要があるのでは? Workbooks.Open Filename:="C:\Users\test.xlsx",,,"0000"

zugvebwoesn
質問者

お礼

ありがとうございました。

関連するQ&A

  • エクセル マクロについて

    Book1で入力データ作成し、保存次第、添付画像の黄色部分に、自動転記する様マクロを組みたいと考えています。 現在、勉強中で、簡単な下記の様なマクロはできました。 これを応用して実践してみたいのですが、何を加えればよいのか、アドバイス頂けたら幸いです。 --------- Sub Macro1() ' ' Macro1 Macro ' ' a = ActiveCell.Value Range("A2").Select ChDir "C:\Users\takana\Desktop" Workbooks.Open Filename:="C:\Users\takana\Desktop\転記.xlsx" Sheets("Sheet2").Select ActiveCell.FormulaR1C1 = "" Range("B2").Select ActiveCell.FormulaR1C1 = a Range("B3").Select End Sub -----------

  • エクセル 保存是非のダイアログを出さずに保存VBA

    エクセル 保存是非のダイアログを出さずに保存VBA エクセルファイルの ひとつのブック L.xlsxの特定のセルを 別のブックR.xlsxのセルにコピーするを VBAコードで コピーまでは出来たのですが R.xlsxのブックを保存するかどうかの ダイアログが出てしまいます これが出ないで保存できるように ActiveWorkBook.Save これを入れてもやはり保存是非の確認が 出てしまいます コードは -------------------- Sub ID移動() Dim x As Workbook Dim y As Workbook Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\L.xlsx" Set x = Workbooks("L.xlsx") Workbooks.Open Filename:="C:\Users\USER\Desktop\ACCESS\R.xlsx" Set y = Workbooks("R.xlsx") y.Sheets("sheet1").Range("A2") = x.Sheets("output").Range("B2") x.Close y.Close ActiveWorkBook.Save End Sub ------------------ 保存是非のダイアログがでないで 保存できるための方法を 御教示いただけますか win10 office365 すみませんが 宜しくお願い致します

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • Open Filenameで変わるファイル名を開く

    スマホアプリで作成したデータをパソコンのExcelから開きたいです。 vbaで操作したいのですが、アプリでエクスポートされたファイル名は日々名前が変わります。 Open Filenameで操作したいです。 Sub Sample1は開きますが、毎日ファイル名をて入力しなければなりません。 Sub Sample1() Workbooks.Open Filename:="C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite\cal-excel-160906.xls" '←「yymmdd.xls(年年月月日日).xlsの数値が入っています」 End Sub Sub Sample2に日々変わるファイル名の数値の部分を*に置き換えましたが、駄目でした。実行エラー1004 Sub Sample2() Workbooks.Open Filename:="C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite\cal-excel*.xls" End Sub Sub Sample3に日々変わるファイル名の数値の部分を??????に置き換えましたが、駄目でした。実行エラー1004 Sub Sample3() Workbooks.Open Filename:="C:\Users\closeinlove\Dropbox\アプリ\ExcelCalendarLite\cal-excel-??????.xls" End Sub ファイル名の変わる部分の指定方法を教えて下さい。

  • Office2010のVBAファイル自動オープン

    VBAの自動オープンで対象ファイルの開き方によって VBAが正常に動かないので質問させt下さい。 ネットワーク上のサーバーである AD-1から開くのとネットワークドライブPから開くのとでは Excelの名前の管理機能が動作しません。 Private Sub Workbook_Open() Workbooks.Open Filename:= _ "\\ad1\共通\aaaa.xlsx" Worksheets("Sheet1").Activate と Private Sub Workbook_Open() Workbooks.Open Filename:= _ "P:\共通\aaaa.xlsx" Worksheets("Sheet1").Activate 両方とも稼働させる方法はあるのでしょうか? よろしくお願いします。 End Sub

  • エクセルVBA ファイル名操作

    エクセルマクロのコードにおきまして 「フォルダの選択」ダイアログから エクセルファイル 123.xlsxを例えば 開くときに それをa.xlsxという名前に変えて 以下のそれに続くVBAコードにおいて a.xlsxを操作したいのですが、 a = Application.GetOpenFilename() Workbooks.Open a これを実行すると求めるダイアログが表示されて 使いたい123.xlsxを開くをクリックしますが これでは123.xlsxがa.xlsxにはなりません このa.xlsxのファイル名で別途ファイル作成する方法を 御教示いただけると助かります よろしくお願いします win10 office365 コードは以下 部分ですが こういう流れで作成したい所存です Sub あいう() a = Application.GetOpenFilename() Workbooks.Open a 'b.xlsxファイルを新規作成 Workbooks.Add ActiveWorkbook.SaveAs Filename:="C:\Users\USER\Desktop\あいう\b.xlsx", FileFormat:=xlXMLSpreadsheet 'a.xlsxファイルの1行目のA1~AG1のセルの値をコピー Workbooks("a.xlsx").Worksheets("Sheet1").Range("A1:AG1").Copy 'b.xlsxファイルのA3~AG3のセルに貼り付け Workbooks("b.xlsx").Worksheets("Sheet1").Range("A3:AG3").PasteSpecial xlPasteValues 以下省略 よろしくお願いします

  • エクセル 別のエクセルの特定のシートを開きたいのですが

    宜しくおねがいします。 現在、エクセルで 下記のようなVBAを使用しております。 Private Sub CommandButton1_Click() Workbooks.Open Filename:="テスト.xls" End Sub テストのエクセルのSheet2を開きたい場合はどうすれば よろしいのでしょうか? 教えて下さい。宜しくお願い致します。

  • VBA 新規にエクセルを開き既存のファイルを開く

    VBAで新規にエクセルのアプリケーションを起動し、 その中に既存のファイルを起動する方法は有りますか? Sub Sample() Dim appExcel As Excel.Application Dim WSH As Variant Dim strPath As String Set appExcel = New Excel.Application Set WSH = CreateObject("Wscript.Shell") strPath = ActiveWorkbook.Path With appExcel .Visible = True .Workbooks.Add .ActiveWorkbook.SaveAs (strPath & "\ test.xls") End With Set WSH = Nothing End Sub このコードは、ネットから拾ったサンプルコードなのですが 新しいアプリケーションでエクセルを立ち上げることはできたのですが 新規のブックが開いてしまい、 更に、開きたいファイルに上書き保存してしまいそうです。 新規のブックが開く原因は .Workbooks.Addで、 上書き保存する原因は .ActiveWorkbook.SaveAs だとわかってるのですが、 この部分を同変更すればいいのかがわかりません。 Workbooks.Open?Filename:="C:\Users\test.xlsx" だと、現在実行しているvbaファイルを同じ枠内で 該当のファイルが開いてしまいます。

  • VBAでファイルを閉じる時に、他のエクセルファイルを閉じるには?

    VBAで、 Private Sub Workbook_Open() Workbooks.Open FileName:="バス時刻表.xls",ReadOnly:=True End Sub で、バス時刻表.xlsを自動的にオープンした後、 閉じる時に、 Private Sub Workbook_BeforeClose(Cancel As Boolean) Workbooks("バス時刻表.xls").Close End Sub で記述したら、エラーとなります。 どのようにすればいいのでしょうか? よろしくお願いします。

  • エクセルVBA教えてください

    sub 新規トレーニングへ() Workbooks Open Filename:="F:新規トレーニング.xlsm Worksheets("新規2").Select End Sub Private ub CommandButton1_click() 新規トレーニングへ End Sub アクティブでないbookをボタンで開くようにしています こんな構文でUSBで作成して問題無く動いています が他のPCへ移動してドライブをCに変えたところ Workbooks Open Filename:="F:新規トレーニング.xlsmが黄色で この部分にデバッグです 移動してドライブをCに変えただけではVBAではダメなのでしょうか 何故だめ?なのと解決方法を教えてくださると有り難いのです それとも初めからCドライブで作り直しなのでしょうか 宜しくお願いいたします。

専門家に質問してみよう