-PR-
解決
済み

セルを参照して、保存

  • すぐに回答を!
  • 質問No.46690
  • 閲覧数274
  • ありがとう数4
  • 気になる数0
  • 回答数8
  • コメント数0

お礼率 16% (3/18)

はじめましてynakaと言います。

現在、VBAを使用して、Excel上のセルを参照して、それを使い
あるファイルの名前を変えて保存しようと考えているのですが、
どうもうまくいきません。

名前を変える所はうまくいったんですが、セルを参照する所がどうも・・・・
どなたかアドバイス下さい。
お願いします。
通報する
  • 回答数8
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.5
レベル14

ベストアンサー率 24% (612/2465)

マスターを残してと言うことですが、ファイル名を指定して保存と同様の動作をしますので、問題ないと思います。
また、マクロをどうやって実行するのかは分からないのですが、シートがアクティブになっていない場合は、keeさんがご指摘の用にbook名から指定する必要が有ります。

もし、ファイル名が重複する場合は、ファイル名を更するか聞いてきますので大丈夫でしょう。
補足コメント
ynaka

お礼率 16% (3/18)

Dim fname As String
Sheets("sheet1"),Select
fname = Range("B2").Value
FileCopy "C:\aa1.txt"),
"C:\aa1(fname.Value).txt")

と、Excel上の"B2"を参照し、違う種類のファイルの名前を変えようと
考えているのですが、うまくいきません。
変数の定義の仕方がおかしいのか、変数の使い方がおかしいのか、
それとも他の何か?
無限ループにはまってしましました・・・・・
投稿日時 - 2001-03-02 21:21:31
-PR-
-PR-

その他の回答 (全7件)

  • 回答No.2
レベル14

ベストアンサー率 24% (612/2465)

具体的にセル内データをどの用に利用するのか補足願えませんか? 行う処理を細かく文章でお願いします。 内容によっては答えられると思います。 ...続きを読む
具体的にセル内データをどの用に利用するのか補足願えませんか?
行う処理を細かく文章でお願いします。
内容によっては答えられると思います。
補足コメント
ynaka

お礼率 16% (3/18)

セルにデータの情報を書きます。
(例)データ番号を”8851”でしたら、セルに”8851”と入力。
そのセルを参照して、保存します。
「8851,xls」と保存したいです。

変数を宣言して、その変数をセルの情報として扱おうとしたのですが
失敗しました。

助言、お願いします。
投稿日時 - 2001-03-02 11:52:05


  • 回答No.1
レベル8

ベストアンサー率 51% (14/27)

実際にどのようなプログラムを書かれたのかが分からないので回答ではないのですが。 セルの値を参照するのはWorksheetオブジェクトのRangeプロパティーを使用します。 以下のコードはアクティブなシートのA1の値をメッセージボックスに表示します。 Dim Sheet As Worksheet Set Sheet = ThisWorkbook.ActiveSheet MsgBox Sheet ...続きを読む
実際にどのようなプログラムを書かれたのかが分からないので回答ではないのですが。
セルの値を参照するのはWorksheetオブジェクトのRangeプロパティーを使用します。
以下のコードはアクティブなシートのA1の値をメッセージボックスに表示します。

Dim Sheet As Worksheet
Set Sheet = ThisWorkbook.ActiveSheet
MsgBox Sheet.Range("A1")
  • 回答No.3
レベル14

ベストアンサー率 24% (612/2465)

VBAを下記のように記述してみてください。 Rangeの括弧内は利用するセルに書き換えてください。 "c:\"も任意のディレクトリに書き換えてください。 fnameを宣言し、セルデータからフルパスのファイル名を作成、そのファイル名で保存。 Dim fname As String fname = "c:\" & Ran ...続きを読む
VBAを下記のように記述してみてください。
Rangeの括弧内は利用するセルに書き換えてください。
"c:\"も任意のディレクトリに書き換えてください。
fnameを宣言し、セルデータからフルパスのファイル名を作成、そのファイル名で保存。

Dim fname As String

fname = "c:\" & Range("a1").Value & ".xls"
ActiveWorkbook.SaveAs Filename:=fname, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
補足コメント
ynaka

お礼率 16% (3/18)

助言、ありがとうございます。

書きもらしていたのですが、
マスターは残しつつ、Copyfileを使って、コピーを作り、
コピーしたものだけ、名前を変えようと考えています。
その場合は、上記のでも対応可能でしょうか?
投稿日時 - 2001-03-02 13:44:24
  • 回答No.4
レベル11

ベストアンサー率 13% (63/457)

セルを参照するためにはオブジェクトをキチンと指定しないとうまくいかないようなことがあります。 下のようにシート名もしてみてください。 ppath = "c:\log\" pfile = Workbooks("book1.xls").Worksheets("Sheet1").Cells(2, 2).FormulaR1C ...続きを読む
セルを参照するためにはオブジェクトをキチンと指定しないとうまくいかないようなことがあります。

下のようにシート名もしてみてください。

ppath = "c:\log\"
pfile = Workbooks("book1.xls").Worksheets("Sheet1").Cells(2, 2).FormulaR1C1
ptail = ".xls"

Workbooks("book2.xls").SaveAs Filename:=ppath & pfile & ptail, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Workbooks("Book2.xls").Close
  • 回答No.7
レベル11

ベストアンサー率 13% (63/457)

たびたびどーもkeeです。 DestinationFile = "C:\aa1" & fname.Value & ".txt" の fname.Value て正しかったっけ? string型はオブジェクトじゃないから、違うような・・。 正しくは DestinationFile = "C:\aa1" &am ...続きを読む
たびたびどーもkeeです。

DestinationFile = "C:\aa1" & fname.Value & ".txt"

の fname.Value て正しかったっけ?
string型はオブジェクトじゃないから、違うような・・。

正しくは
DestinationFile = "C:\aa1" & fname & ".txt"
かもね
お礼コメント
ynaka

お礼率 16% (3/18)

keeさん、ありがとうございました。
また、無限ループに陥る所でした。
何度やっても、注意がでてきて、????状態でした。
助言どおりにしてみたら、OKでした。
投稿日時 - 2001-03-05 13:41:28
  • 回答No.6
レベル14

ベストアンサー率 24% (612/2465)

fileをコピーですが、補足の動作を行う場合ですと セルのB2の内容が123と入っていた場合 aa1.txtをaa1(123).txtにする場合 Dim fname As String Dim DestinationFile As String Sheets("sheet1"),Select fname = Range("B2").Value ...続きを読む
fileをコピーですが、補足の動作を行う場合ですと
セルのB2の内容が123と入っていた場合

aa1.txtをaa1(123).txtにする場合

Dim fname As String
Dim DestinationFile As String
Sheets("sheet1"),Select
fname = Range("B2").Value
DestinationFile = "C:\aa1(" & fname.Value & ").txt"
FileCopy "C:\aa1.txt", DestinationFile

aa1.txtをaa1123.txtにする場合
Dim fname As String
Dim DestinationFile As String
Sheets("sheet1"),Select
fname = Range("B2").Value
DestinationFile = "C:\aa1" & fname.Value & ".txt"
FileCopy "C:\aa1.txt", DestinationFile

という風に、実値と変数を組み合わせる場合は「&」もしくは「+」で加工しないと行けません。また、補足のロジックには「)」が2個ほど余分に入っています。
また、Sheetsのセレクトの所がピリオドで無くカンマになっています。
お礼コメント
ynaka

お礼率 16% (3/18)

いろいろありがとうございました。
お陰で、なんとかできました。
投稿日時 - 2001-03-05 13:38:22
  • 回答No.8
レベル14

ベストアンサー率 24% (612/2465)

keeさま、ご指摘ありがとうございます。 補足のソースをそのまま利用してしまいましたm(._.)m
keeさま、ご指摘ありがとうございます。
補足のソースをそのまま利用してしまいましたm(._.)m
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ