【最大10000ポイント】当たる!!質問投稿キャンペーン!

希望する事は
ファイルを保存するフォルダを指定し、
ファイル名(インプットボックスをつかって
変数として入力させたもの)をつけて保存したい。
フォルダは事前に作成してあるが
保存したい場所はそのときによってまちまちなので
保存するたびにフォルダを指定したい。


具体的には
C:\入力済みデータ\【○○】としたいのですが
この【○○】の部分を、そのときに応じて選択するにはどうすればいいでしょうか。

または、浅知恵で
Application.Dialogs(xlDialogSaveAs).Show arg1:="c:\"
というかたちでダイアログボックスを出すまでは出来たのですが
ファイル名は空欄になってしまいますよね。

InputBoxでファイル名を変数として入力させたものを
上のファイル名に入れることは可能ですか?

どうぞよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

これでできませんか?


まず条件どおり、C:\入力済みデータ の中にいくつかのフォルダを用意しました。
Excel 2003 を新規に立ち上げ、新規ワークブックに標準モジュールを挿入し、以下のコードを書き込んで実行しました。

Sub hoge()
Dim initPath As String
initPath = "C:\入力済みデータ"
Dim saveFilePath As String
saveFilePath = Application.GetSaveAsFilename(initPath, "Excel File (*.xls),*.xls")
If Not (saveFilePath = "False") Then
ThisWorkbook.SaveAs saveFilePath
End If
End Sub

"ファイル名を指定して保存" のダイアログが表示され、初期フォルダとして C:\入力済みデータ が開かれています。
ファイル名は何も指定されていません。
ダイアログの中には当然、先に作っておいたいくつかのサブフォルダが一覧表示されているので、ユーザーは
1) サブフォルダを選択する。
2) ファイル名を入力する。
3) [保存] ボタンをクリックする。
というアクションを行う。

私のところではダイアログ表示時の初期フォルダとして My Documents ではなく、きちんと C:\入力済みデータ が開かれましたよ。

この回答への補足

いろいろとありがとうございます。

言葉足らずで申し訳ないのですが
インプットボックスで入力させたファイル名は
一度「ファイル集計」シートの「セルB2」に格納しています。
このデータは
ファイルナンバー = Range("B2")として
ChDir "C:\入力済みデータ"
ActiveWorkbook.SaveAs Filename:=ファイルナンバー & ".xls"
のように一度入力済みデータフォルダに保存します。

ただし、入力済みデータフォルダに保存させようとしたときに、
もし同名のファイルが入力済みデータフォルダ存在していた場合、
サブナンバーをつけるようにしているのです。
(たとえば123-456というファイルがすでに入力済みフォルダに存在していて
また123-456というファイル名で保存しようとした場合
「セルB2」の値を123-456-1という値に変え、123-456-1というファイル名で保存させる)

方法は以下のような感じです。(他にいいやり方があるかも知れませんが汗)

Sub ファイル検索()

Dim i As Integer
Dim ファイルナンバー As String



Sheets("ファイル集計").Select
ファイルナンバー = Range("B2")

With Application.FileSearch
.LookIn = "C:\入力済みデータ"
    .SearchSubFolders = False
    .Filename = ファイルナンバー & "*.xls"
    .FileType = msoFileTypeExcelWorkbooks
    If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) > 0 Then
     MsgBox ("サブナンバーに" & .FoundFiles.Count & " をつけて保存します")
    Sheets("ファイル集計").Select
Range("B2") = ファイルナンバー & "-" & .FoundFiles.Count


End If
End With

End Sub

無事に入力済みデータフォルダに保存されたあと、
同じファイルを、もうひとつ納品用のフォルダに保存したいのです。
入力済みデータフォルダには、前述の理由で、以前入力したデータも
蓄積していかなければなりません。
(サブナンバーをつけることが出来無いので)
ですが、たとえば10月に入力した部分だけを納品したいとき
2007-10というようなフォルダにまとめて納品したいというのが希望です。
ですから、2007-10というフォルダを作り、そこに保存をしたいのです。

教えていただいたように
保存する際にファイル名を入力させたのでは
サブナンバーがつかないし、ファイルのB2セルにもファイル名を反映できないのではないかと思うのですが…

補足日時:2007/10/31 14:06
    • good
    • 2
この回答へのお礼

いいヒントをいただいて、自己解決いたしました。
大変参考になりました。
ありがとうございます。

お礼日時:2007/10/31 20:55

要するに、ExcelVBAで、フォルダを指定できる画面を表示できれば良いんですよね・・・



「Access2003 VBA でフォルダ参照ダイアログについて」
http://okwave.jp/qa3341236.html

では駄目?
    • good
    • 2

VB6もですがVBAではフォルダだけを選択させるのは、大変なんです。


ファイル名の入力にInputBoxを使ってますが
代わりにフォームにして
ファイル名とフォルダ名を入力させてはどうでしょう?
使用するコントロールは
ファイル名:テクストボックス
フォルダ名:リストボックスまたはコンボボックス
とすれば、ファイル名は自由に入力できて、かつフォルダ名は規定のものから選択するように出来ます。
    • good
    • 1

> の【○○】の部分に


> 保存指定フォルダ = InputBox("保存するフォルダ名を半角で入力してください ", "保存フォルダ入力")

すみません。ユーザーにはどこまでさせたくて、システム側はどこまでしてあげるのかの境界線がわからなくなりました。。。
ファイル名はユーザーに指定させたくなくて、その一個上のフォルダ名だけを指定させたいってこと?
つまり、c:\aaa\bbb\ccc\ddd.xls のうち ccc の名前だけをユーザーに指定させたい?

Dim initPath As String
initPath = "C:\入力済みデータ\hoge.xls"
Dim saveFilePath As String
saveFilePath = Application.GetSaveAsFileName(initPath, "Excel File (*.xls),*.xls")
ThisWorkbook.SaveAs saveFilePath

上記 2行目。
一階層減らして、代わりにファイル名を固定にしました。
これを実行して名前を付けて保存ダイアログを開いてみてください。
初期パスとして一階層上の "C:\入力済みデータ\" が開かれていて、そのサブフォルダ一覧がダイアログに表示されています。
更に、ファイル名も入力済みの状態です。

あとは質問者さんが言うように InputBox でユーザーに入力させたいフォルダ名をこのサブフォルダ一覧の中からマウスのダブルクリックで開いて [保存] ボタンを押すだけ。
操作手順的にも一般の Windows アプリの手順と同じなのでユーザーが混乱する事もないかと。

この回答への補足

ありがとうございます。
やってみましたが、保存先として開いたのはmydocumentになってしまい
ファイル名はhoge.xlsと出てしまうのですが…

もう一度整理してみます。
手順としては

データを入力したあと
(1)インプットボックスでファイル名(↓ではファイルナンバーになっていますが…)を入力させる
 ファイルナンバー = InputBox("ファイルナンバーを半角で入力してください ", "ファイルナンバー入力")
(2)保存する場所を選択させる
 C:\入力済みデータ…この下には10-01、10-02などのフォルダがすでにあるので、この中から選択させたい
選択が出来ないなら、インプットボックスでフォルダ名を指定させても可
 保存指定フォルダ = InputBox("保存指定フォルダを半角で入力してください ", "保存指定フォルダ入力"…などで

なので、ファイル名を固定されると困ってしまうのです。
もう、どうしたらいいかわからなくなりました(泣)

補足日時:2007/10/30 14:33
    • good
    • 0

>Application.Dialogs(xlDialogSaveAs).Show arg1:="c:\"


というかたちでダイアログボックスを出すまでは出来たのですが
ファイル名は空欄になってしまいますよね。
その空欄にファイル名を入れるのではないですか。
「保存先」に下記例では「新しいフォルダ」に限定され、そのフォルダのファイルがその下の枠内に表示されている。
Sub test01()
Application.Dialogs(xlDialogSaveAs).Show arg1:="C:\Documents and Settings\xxxx\デスクトップ\新しいフォルダ"
End Sub
ーーー
もっと、ファイル名が例えば、fff○○の○○だけ入力したいのなら
Sub test01()
Application.Dialogs(xlDialogSaveAs).Show arg1:="C:\Documents and Settings\OTO\デスクトップ\新しいフォルダ\fff"
End Sub
とすれば、「ファイル名」欄に、fffが入って入力待機状態になります。

この回答への補足

さっそくのご教示ありがとうございます。
やってみたのですが、思ったようにできませんでした。

もっと、ファイル名が例えば、fff○○の○○だけ入力したいのなら
Sub test01()
Application.Dialogs(xlDialogSaveAs).Show arg1:="C:\Documents and Settings\OTO\デスクトップ\新しいフォルダ\fff"
End Sub
とすれば、「ファイル名」欄に、fffが入って入力待機状態になります。

↑の「fff」の部分を、
ファイルナンバー = InputBox("ファイルナンバーを半角で入力してください ", "ファイルナンバー入力")
という形で入力させた値にしたいのですが…

これだと、ファイル名欄に"ファイルナンバー"とテキストが入ってしまうのです。

補足日時:2007/10/30 13:27
    • good
    • 0

InputBox を使う事が希望内容に入ってますが、使わなくちゃダメですか?


通常の 「名前を付けて保存」 ダイアログを使っちゃダメですか?

Dim initPath As String
initPath = "C:\入力済みデータ\【○○】\"
Dim saveFilePath As String
saveFilePath = Application.GetSaveAsFileName(initPath, "Excel File (*.xls),*.xls")
ThisWorkbook.SaveAs saveFilePath

最後の ThisWorkbook は保存対象のブックに合わせて適宜変更。

この回答への補足

さっそくのご教示ありがとうございます。

Dim initPath As String
initPath = "C:\入力済みデータ\【○○】\"
Dim saveFilePath As String
saveFilePath = Application.GetSaveAsFileName(initPath, "Excel File (*.xls),*.xls")
ThisWorkbook.SaveAs saveFilePath

の【○○】の部分に
保存指定フォルダ = InputBox("保存するフォルダ名を半角で入力してください ", "保存フォルダ入力")
という形で入力させた値を入れるにはどうしたらいいでしょうか…

補足日時:2007/10/30 13:37
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSaveAsの保存先について

エクセルのマクロのついての質問です

よろしくお願いします

現在、下記のようなコードでマクロを実行するとパスワードをつけて上書き保存したような結果になっています(元のファイル名も○○.xlsで、指定したものと同一です)

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="○○.xls", FileFormat:=xlNormal, Password:="1111", WriteResPassword:="2222", ReadOnlyRecommended _
:=False, CreateBackup:=False
Application.DisplayAlerts = True

私の目的としてはそれでよいのですが、このように格納先を指定しなかった場合は

必ず元のファイルと同一のフォルダになるってくれるものなのでしょうか?

それとも状況によって別なところに名前をつけて保存されてしまったりすることがありますか?

Aベストアンサー

> 私の目的としてはそれでよいのですが、このように格納先を指定しなかった場合は
> 必ず元のファイルと同一のフォルダになるってくれるものなのでしょうか?

通常は、格納先パスを指定しなかった場合は、Excelのオプションで指定したカレントフォルダが
保存先になります。
ですが、Excelを開いてからSaveAsを行ったり、「名前をつけて保存」を
実行したりすると、そのときのパスが入るようです。

確実に同じフォルダに保存したい場合は、パスを指定した方が良いでしょうね。

例えば、上の例の場合は"○○.xls"を開いてそれを修正してまた保存する、
という形なんじゃないかと思いますが、そういう場合は"○○.xls"を
開いた直後に
 pathname = ActiveWorkbook.path
とパスを取得しておいて、SaveAsの中に
 Filename:= pathname & "\○○.xls"
と記述すればよいと思います。

なお、マクロのパスを取得したい場合は、
 pathname = Thisworkbook.path
で、できます。

QExcelで指定したフォルダに保存するマクロ

Excel2003で、シートをコピーし別ファイルとして保存したいのですが
保存先のフォルダがネットワーク上にあります。
ファイル名は、指定したセルの値で保存されるようにします。
以下の記述でマクロ実行すると、シートは別ファイル(BOOK1)としてコピーされ
ます。
名前をつけて保存ダイアログが開きますが、そのときにマイドキュメントが開き
ます。

Private Sub CommandButton1_Click()
ActiveSheet.Select
ActiveSheet.Copy
Dim Sname As String, Fname As Variant, Folname As String
Folname = "ネットワーク上フォルダのフルパス"
Sname = Range("O46").Value
If Sname = "" Then Sname = ThisWorkbook.Name
Fname = Application.GetSaveAsFilename(InitialFileName:=Sname,
fileFilter:="Excel(*.xls), *.xls")
If Fname <> False Then ActiveWorkbook.SaveAs Fname
End Sub


そもそもネットワーク上のフォルダを指定することはできないのでしょうか?
マクロに関してはずぶの素人で、上記の記述は過去の質問などを参考に作成しま
したので
どこかに間違いがあるのかも知れませんが、間違いを特定することができません。

お手数おかけし申し訳ありませんが、ご教示のほどよろしくお願いします。


補足として、保存する際にダイアログを開きたい理由は以下の通りです。
・保存先誤り防止(作業者が多数いて、使用するPCも違うため)
・ファイル名誤り防止(同じファイル名が存在しないかどうか確認)

Excel2003で、シートをコピーし別ファイルとして保存したいのですが
保存先のフォルダがネットワーク上にあります。
ファイル名は、指定したセルの値で保存されるようにします。
以下の記述でマクロ実行すると、シートは別ファイル(BOOK1)としてコピーされ
ます。
名前をつけて保存ダイアログが開きますが、そのときにマイドキュメントが開き
ます。

Private Sub CommandButton1_Click()
ActiveSheet.Select
ActiveSheet.Copy
Dim Sname As String, Fname As Variant, Folname As String
Folname = "ネットワーク...続きを読む

Aベストアンサー

こちらでは、IP Address 指定だとファイル名が,"" で括られてしまいましたが
フォルダ名とファイル名が一緒くたになることはありませんでした。Excel2010
UNC名だとうまく行きました。

Sub てすと()
Dim Sname As String, Fname As Variant
Dim oFs As Object
Const FolName As String = "\\サーバー名\共有名\フォルダ名\"

Set oFs = CreateObject("Scripting.FileSystemObject")
If oFs.folderExists(FolName) = False Then
MsgBox FolName & " が見つかりません"
Set oFs = Nothing
Exit Sub
End If

ActiveSheet.Select
ActiveSheet.Copy
Sname = Range("O46").Value

If Sname = "" Then
Sname = ThisWorkbook.Name
End If

Fname = Application.GetSaveAsFilename(InitialFileName:=FolName & Sname, _
fileFilter:="Excel(*.xls), *.xls")

If Fname <> False Then
ActiveWorkbook.SaveAs Fname
End If
Set oFs = Nothing
End Sub

こちらでは、IP Address 指定だとファイル名が,"" で括られてしまいましたが
フォルダ名とファイル名が一緒くたになることはありませんでした。Excel2010
UNC名だとうまく行きました。

Sub てすと()
Dim Sname As String, Fname As Variant
Dim oFs As Object
Const FolName As String = "\\サーバー名\共有名\フォルダ名\"

Set oFs = CreateObject("Scripting.FileSystemObject")
If oFs.folderExists(FolName) = False Then
MsgBox FolName & " が見つかりません"
Set oFs = Nothing
Exit Sub
End...続きを読む

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセルマクロで任意のファイル名をつけて保存したい

 エクセルVBAについての質問です。
 エクセルのマクロで、Aというファイルを開いて、そのうち必要なワークシートだけを抽出し、新しいブックに移動し、その新しいブックを新しいブックのsheet1のセルC2の文字列をファイル名として保存するようなマクロをくみたいと思っています。
 ファイルを開いて必要なワークシートだけを抽出し、新しいブックに移動するところまではできましたが、新しいブックのセルC2の文字列をファイル名として保存することができません。FNを変数として宣言して、C2の文字列を代入し、FNをファイル名として保存しようとすると、ファイルにFNという名前が付いてしまいます。どうすれば、C2の文字列をファイル名として保存できるのでしょうか。なお、保存するフォルダはc:\変換ファイル\6月です。どなたか教えてください。よろしくお願いします。

Aベストアンサー

FNを文字列として扱っていませんか?以下でどうでしょう?


Sub 保存()

Dim FN As String
FN = Range("C2")
ActiveWorkbook.SaveAs Filename:="C:\変換ファイル\6月\" & FN & ".xls"
End Sub

QExcelのVBAでフォルダ指定ができるダイアログボックスを出す方法

指定したフォルダに自動でExcelファイルを保存できるようにしたいのですが、フォルダ指定ができるダイアログボックスはないのでしょうか?ファイルを指定するダイアログボックスはできるのですが、それでは必ずファイルを選択しないといけないので・・・
指定できる方法が見つかりません。何か良い方法はないでしょうか?よろしくお願い致します。

Aベストアンサー

日が経ってしまったので既に解決されているかもしれませんが、
私も同じことをしたくて調べていたところ方法が分かったので参考までにと思い投稿いたしました。

次のサンプルコードを試してみてください。

Sub TEST()

Dim ShellApp As Object
Dim oFolder As Object
Set ShellApp = CreateObject("Shell.Application")
Set oFolder = ShellApp.BrowseForFolder(0, "フォルダ選択", 1)

MsgBox oFolder.items.Item.Path, vbOKOnly, "フルパス表示!"

End Sub

APIなど使用せずともフォルダ指定ダイアログが表示可能です。
楽チンですね。

この「BrowseForFolder()メソッド」の詳しいプロパティ・メソッドの解説は参考URLを参照してください。
色々な使い方が可能です。
http://www.galliver.co.jp/writing/susume_vb/tre904/

参考URL:http://www.galliver.co.jp/writing/susume_vb/tre904/

日が経ってしまったので既に解決されているかもしれませんが、
私も同じことをしたくて調べていたところ方法が分かったので参考までにと思い投稿いたしました。

次のサンプルコードを試してみてください。

Sub TEST()

Dim ShellApp As Object
Dim oFolder As Object
Set ShellApp = CreateObject("Shell.Application")
Set oFolder = ShellApp.BrowseForFolder(0, "フォルダ選択", 1)

MsgBox oFolder.items.Item.Path, vbOKOnly, "フルパス表示!"

End Sub

APIなど使用せずともフォ...続きを読む

Qエクセル マクロで指定フォルダを開く

エクセルにて
指定フォルダを開く、マクロがあれば教えて頂けないでしょうか。
よろしくお願いいたします。

Aベストアンサー

こんにちは。

こういうものですか?
開くフォルダを変えたいときは targ に与えるパスを変更します。

Sub OpenFolders()
Dim targ As String
targ = "C:\"
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus
End Sub

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Qエクセルのマクロでの保存先指定方法を教えて

エクセルのマクロを使用して作業したいと思っています。
印刷画面をpdfにして出力しようと思っております
ただし、ここで使用しております エクセルデータは usbで使用しており
pcによりドライブが変わってしまう
このusbに pdfデータを出力したいのですができますでしょうか
pdf変換しておくとプリンタなくても コンビニ印刷できるもので・・・

詳しい方 お教えください
宜しくお願い致します

Aベストアンサー

スミマセン,随分間の空いたレスポンスでしたので,こちらも見落としていました。


>ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"I:\H23年度\マレットゴルフ 成績表.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

ようやっと,ご利用のエクセルのバージョンを含めてそもそもどうやってPDFを保存しているのかの情報が出てきましたね。
この流れで行うなら

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=thisworkbook.path & "\マレットゴルフ 成績表.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True

といった具合になります。
ドライブレターだけ参照して全く違うフォルダに保存したい場合は,前述回答を参考にちょい直してください。

スミマセン,随分間の空いたレスポンスでしたので,こちらも見落としていました。


>ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"I:\H23年度\マレットゴルフ 成績表.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

ようやっと,ご利用のエクセルのバージョンを含めてそもそもどうやってPDFを保存しているのかの情報が出てきましたね。
この流れで行うなら

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
F...続きを読む

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Q別のシートから値を取得するとき

Worksheets("シート名").Activate
上記のを行ってから別シートの値を取得するのですが、
この処理を行うと指定したシートへ強制的にとんでしまいます。。。

※イメージ
For ~ To ~
  Worksheets("シートA").Activate
  シートAの値取得
       :
  Worksheets("シートB").Activate
  シートBの値取得
Next

このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。
シートを変えずに他のシートから値を取得する方法はないのでしょうか。
教えてください!

Aベストアンサー

Worksheets("シートA").Range("A1")

みたいな感じでできませんか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング