Excelのファイルを配布したのですが回収した後のことを考えていなかったので困っています。

回収した複数のExcelのファイルを簡単に1つのファイルにまとめる方法はありますか?

配布した際にわかり易くと思いすべてのファイル名は異なるファイル名にしてます。数は300弱です。

マクロを組むにも300個のファイル名称になっているのでどうしたら良いのか困っています。

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

A 回答 (3件)

okumaru さん、こんばんは。


1.C:\My Documents\ に全ファイルを集め
2.集める対象のシートは必ず各ファイルの1枚目のシート
という前提で以下のようにすればできる気がします(無責任ながら、未検証ですけど)。

Sub CollectSheets()
Dim strPath As String
Dim strFileName As String

strPath = "C:\My Documents\"
strFileName = Dir(strPath & "*.xls")
Do Until strFileName
Workbooks.Open Filename:=strPath & strFileName
Workbooks(strFileName).Worksheets(1).Move agfter:=ThisWorkbook.Sheets(Sheets.Count)
Workbooks(strFileName).Close savechange:=False
strFileName = Dir
Loop

End Sub

でも、単純に考えると、300ものシートが1Bookに集められると...
どうなんでしょう (^^;
    • good
    • 0

まずは、ここら辺から・・



>マクロを組むにも300個のファイル名称になっているのでどうしたら良いのか

 300個のファイルを一つのフォルダに集めて、
そのフォルダに、コマンドプロンプトのプロパティ「作業ディレクトリ」を空欄にしたやつをコピーしましょう。(作業を楽にするためです。Change Directory コマンドを知っているなら、cd で移動するほうをお勧めします)
そのDOS窓から、dir /B *.xls > files.csv [Enter] と入力し、 files.csv をEXCELで開くと、XLS拡張子のファイルリストが出来ています。

これなら、少しはマクロを組むのがカンタンになったのでは?

まだダメなら、貴方のマクロプログラムレベルを補足して下さい。(xxxならできるとか、xxxならやったことがあるとか)
    • good
    • 0

「考え方」について、です。



「まとめるためのブック」にマクロを記述します。
内容は「1.指定されたブック(一件)の全シートを自分自身の末尾に追加する」。
(マクロの記録でできますよね)

で、300件のブック名を一覧シートにしておいて、
セルの値がなくなるまで
繰り返すマクロで「1.」を呼び出す。

でしょうか。
    • good
    • 0

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

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

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

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

QAmazonのブックカバー

すごく単純な質問なんですが、Amazon手本を買ったらブックカバーをつけてくれますか?どうやったらブックカバーが手に入りますか?教えてください。

Aベストアンサー

書籍を3900円以上買って、一緒に欲しい色のブックカバーをカート入れてキャンペーンコードを入力すれば無料で貰えます。

2006年6月30日までです。

参考URL:http://www.amazon.co.jp/exec/obidos/tg/detail/-/books/B0009WHOMG/reviews/ref=cm_rev_more/503-3484887-6739157#4

QExcelVBAについて質問致します 2つの同じファイル名のExcelファイルが 別々のファイルに有

ExcelVBAについて質問致します

2つの同じファイル名のExcelファイルが
別々のファイルに有り
仮に片方を①、もう片方を②、マクロを書き込むファイルを③とします
①②には一部分だけ違った内容が書き込まれています
書式、書き込みセル位置は全く同じです

②のファイルの中身を③に書き込み
(一部関数が有るので値のみ書き込み)
①と違う部分を赤く着色したいのですが上手く行きません

①のファイルは名前の変更が可能です
ファイル名には最後にインプットと有りますが
同じ名前の組み合わせが大量に有るので
起動時に2つのファイルを選択するか
開いている2つのファイルを対象にしたいです

事務所のpcでダウンロード等は出来ないので
フリーソフトではなくコードで教えて頂けないでしょうか
宜しくお願い致します

Aベストアンサー

大変お待たせいたしました。こんな感じではいかがでしょうか?
---------------------------------------------------------------------------
Sub ファイル比較()
Dim 比較元 As Variant
Dim 比較先 As Variant
Dim ファイル名 As String
Dim 行終 As Long
Dim 列終 As Long
Dim 行 As Long
Dim 列 As Long
Sheets(1).Select
Cells.Delete Shift:=xlUp
ChDir ThisWorkbook.Path
比較元 = Application.GetOpenFilename("Excelブック,*.xls;*.xlsx", , "比較元のファイルを指定して下さい", , False)
If 比較元 = False Then Exit Sub
ChDir ThisWorkbook.Path
比較先 = Application.GetOpenFilename("Excelブック,*.xls;*.xlsx", , "比較先のファイルを指定して下さい", , False)
If 比較先 = False Then Exit Sub
ChDir ThisWorkbook.Path
ファイル名 = Dir(比較先)
Workbooks.Open Filename:=比較先
Sheets(1).Select
Cells.Copy
ThisWorkbook.Activate
Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Windows(ファイル名).Activate
ActiveWorkbook.Saved = True
ActiveWindow.Close
With ActiveSheet.UsedRange
行終 = .Rows(.Rows.Count).Row
列終 = .Columns(.Columns.Count).Column
End With
ファイル名 = Dir(比較元)
Workbooks.Open Filename:=比較元
Sheets(1).Select
With ActiveSheet.UsedRange
If 行終 < .Rows(.Rows.Count).Row Then 行終 = .Rows(.Rows.Count).Row
If 列終 < .Columns(.Columns.Count).Column Then 列終 = .Columns(.Columns.Count).Column
End With
Application.ScreenUpdating = False
With ThisWorkbook.Sheets(1)
For 行 = 1 To 行終
For 列 = 1 To 列終
If .Cells(行, 列).Value <> Cells(行, 列).Value Then
.Cells(行, 列).Interior.ColorIndex = 3
Else
.Cells(行, 列).Interior.ColorIndex = xlNone
End If
Next
Next
End With
Application.ScreenUpdating = True
ActiveWorkbook.Saved = True
ActiveWindow.Close
Range("A1").Select
End Sub
---------------------------------------------------------------------------
※ シート名は関係なく一番左側のシートで対応します。
※ ファイル名も同じで無くてもよく、簡単に選択できるようにしました。
※ 比較するファイルは、マクロのファイルが有るフォルダーのサブフォルダにおいた方がファイル指定が楽になります。
※ もしかしたら比較元と比較先が逆かも知れません。適当に直して下さい。

大変お待たせいたしました。こんな感じではいかがでしょうか?
---------------------------------------------------------------------------
Sub ファイル比較()
Dim 比較元 As Variant
Dim 比較先 As Variant
Dim ファイル名 As String
Dim 行終 As Long
Dim 列終 As Long
Dim 行 As Long
Dim 列 As Long
Sheets(1).Select
Cells.Delete Shift:=xlUp
ChDir ThisWorkbook.Path
比較元 = Application.GetOpenFilename("Excelブック,*.xls;*.xlsx", , "比較元のファイルを指定して下さい", , False)
If...続きを読む

Q担当者月別に1ブックにまとめたいのですが

フォルダ内に担当名が付いた日付エクセルブックが毎日送られてきます。
各ブック内シートは同名が一枚です。
月末にはかなりのブック数になり、処理が遅れると、月をまたぐブックも混在してきます。
日付は一緒でも担当者が違うため、同ブックは存在しません
このブックをに担当者月別に1ブックにまとめたいのですが、、

フォルダ内に、”yymmdd担当名”ブック
”090201担当A”ブック
”090201担当B”ブック
”090305担当C”ブック
”090301担当D”ブック
”090201担当A”ブック
”090415担当B”ブック
”090420担当C”ブック
”090401担当B”ブック

例えば
”0902担当A”ブック(シート090201担当A、090202担当A、090215担当A・・・) 担当Aの2月稼動
”0903担当A”ブック(シート090305担当A、090310担当A、090320担当A・・・) 担当Aの3月稼動
”0903担当B”ブック(シート090305担当B、090310担当B、090320担当B・・・) 担当Bの3月稼動

同フォルダ内でいいので、こんな感じでまとめることができれば。
月末処理でなくても、随時処理できるように上書きも可能にして、組み込んだブックは削除して
フォルダ内をすっきりさせたいのです。

以前、シート内からの月別ブック作成のマクロ模範回答があり、何とか応用してと格闘しましたが、
フォルダパスが絡んでくると、どうもよく解らなくなってきました TT
どなたかご指導願います

フォルダ内に担当名が付いた日付エクセルブックが毎日送られてきます。
各ブック内シートは同名が一枚です。
月末にはかなりのブック数になり、処理が遅れると、月をまたぐブックも混在してきます。
日付は一緒でも担当者が違うため、同ブックは存在しません
このブックをに担当者月別に1ブックにまとめたいのですが、、

フォルダ内に、”yymmdd担当名”ブック
”090201担当A”ブック
”090201担当B”ブック
”090305担当C”ブック
”090301担当D”ブック
”090201担当A”ブック
”090415担当B”ブック
”09...続きを読む

Aベストアンサー

やる作業とその方法が、本当に適切なのか会社内で検討するのが先のようにも感じます。

>処理が遅れると、月をまたぐブックも混在してきます。
これなんか同じフォルダに送り込むのがまずいので別フォルダに送るようにするか、
若しくは月末(月初め)に既にあるブックは別の場所へ移動させておく等でも、手間が少なくなるのでは。

あとは”毎日”送る必要があるのかどうか?
毎日集計する必要がなければ、各担当者が1ブックに1月分(または半月分)
まとめておいてそれから送ってくるとか、見直せる部分があるように思えます。

QExcelファイルで作成したものを配布する際の対応策

現在、Excelのマクロ及びVBAで作成したツールを第三者へ配布する事を予定しています。
その際に、VBA及びマクロを表示、改ざんできないように制御したいと思い、以下のような事ができないか考えています。

* 1: メニューバー上のメニューを最低限必要なものだけを表示
2: 1がNGの場合 メニューバー上のメニューを非表示
3: ツールバーの非表示
* 4: ショートカットキーの動作の制御(ショートカットキーで操作してもらいたくない)
* 5:タイトルバー上の文字列も出来れば任意に変更したい。
* 6: AUTO_OPENで指定したモジュールを必ず実行されることは出来るのか?
(SHIFTキーを押しながらのOpenやモジュールの無効とされても組んだ処理以外のことが出来なければOK)
7: マクロ、モジュール、ワークシートの保護

という事を行いたいと思っています。
特に、今わかならないのが 1:/4:/5:/6:(先頭に*を付けてます)なのですが Excelで制御可能なのでしょうか?

また、こういったレベルについて記載のあるExcel関連書やサイトなどお奨めがあったら教えていただけると助かります。

VBA自体は数年前にAccessでやっただけで浦島太郎だし、ExcelとAccessで勝手が違うし・・・と苦戦しています。
お手間かけますがよろしくお願いいたします!!

現在、Excelのマクロ及びVBAで作成したツールを第三者へ配布する事を予定しています。
その際に、VBA及びマクロを表示、改ざんできないように制御したいと思い、以下のような事ができないか考えています。

* 1: メニューバー上のメニューを最低限必要なものだけを表示
2: 1がNGの場合 メニューバー上のメニューを非表示
3: ツールバーの非表示
* 4: ショートカットキーの動作の制御(ショートカットキーで操作してもらいたくない)
* 5:タイトルバー上の文字列も出来れば任意に変更したい。
* 6: AUTO_OP...続きを読む

Aベストアンサー

質問とは直接は関係ないかもしれませんが、↓もご一読ください。
参考になると思います。

配布の問題
http://www.asahi-net.or.jp/~ef2o-inue/haifu/sub06_010.html

Q【画像あり】複数のブック・シートから検索はできる?

タイトルの件、質問いたします。

下記の図【現状】のとおり、呼出ブック・Sheet1のB1セルに【NO】をハイフンを入れて
入力すると、名簿ブック・Sheet1の情報が、呼出ブックのB2、B3セルに【名前、趣味】
が呼出されます。

この名簿ブックの範囲を下記の図【やりたい事】とおり、広げる事はできますか?
具体的には、下記のとおりです。

【広げたい名簿ブックの範囲】→3つのブック、11のシート
●名簿ブック・Sheet1  名簿ブック・Sheet2  名簿ブック・Sheet3
 名簿ブック・Sheet4 名簿ブック・Sheet5
●名簿1ブック・Sheet1 名簿1ブック・Sheet2 名簿1ブック・Sheet3 
●名簿2ブック・Sheet1 名簿2ブック・Sheet2 名簿2ブック・Sheet3

【呼出ブック・Sheet1にある関数】
B2セル:=VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿.xls]Sheet1!A:C,2,FALSE)
B3セル:=VLOOKUP(SUBSTITUTE(B$1,"-",""),[名簿.xls]Sheet1!A:C,3,FALSE)

↑上記関数は、教えてgoo回答者様にご教授いただきました。


【条件】
●エクセルバージョン:2003
●名簿ブックは全て閉じているものとします。
●同じフォルダ内に全てあります。理想は、名簿ブックのみ、違うフォルダに格納したいです。
●名簿ブックにある、人の情報は全て、違う人です。

以上、宜しくお願いいたします。

タイトルの件、質問いたします。

下記の図【現状】のとおり、呼出ブック・Sheet1のB1セルに【NO】をハイフンを入れて
入力すると、名簿ブック・Sheet1の情報が、呼出ブックのB2、B3セルに【名前、趣味】
が呼出されます。

この名簿ブックの範囲を下記の図【やりたい事】とおり、広げる事はできますか?
具体的には、下記のとおりです。

【広げたい名簿ブックの範囲】→3つのブック、11のシート
●名簿ブック・Sheet1  名簿ブック・Sheet2  名簿ブック・Sheet3
 名簿ブック・Sheet4 名簿ブック・Sheet5
●名...続きを読む

Aベストアンサー

その条件で,できますかという事なら次のように丁寧に作成していけば出来ます。(面倒なだけでムズカシイお話は何もありません)

=IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet1'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet1'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet2'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet2'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet3'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet3'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet4'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet4'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet5'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet5'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック1.xls]Sheet1'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック1.xls]Sheet1'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック1.xls]Sheet2'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック1.xls]Sheet2'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック1.xls]Sheet3'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック1.xls]Sheet3'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック2.xls]Sheet1'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック2.xls]Sheet1'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック2.xls]Sheet2'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック2.xls]Sheet2'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック2.xls]Sheet3'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック2.xls]Sheet3'!A:C,2,FALSE))

※保存先のドライブ名やフォルダなどの記述は正しく訂正して作成すること
この式を置いたブックは,別にどこに保管しておいても全く構いません。


こういったどうにもナンセンスな方法を取るしかないのは,データがバラバラとあっちこっち散らばっているからに他なりません。
仮に元データはそういう具合に散らかして運用するしかないのだとしても,それらから単純な参照式を並べて(オリジナルの表をコピーする→集めシートに形式を選んで貼り付けのリンク貼り付けでリンクの式を並べる→全部の表から行う)一枚のシートにえいやっと全てのデータを集めてしまえば,当初に成功していた
=VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿の全部.xls]Sheet1'!A:C,2,FALSE)
というだけの,シンプルな数式で完成できます。

その条件で,できますかという事なら次のように丁寧に作成していけば出来ます。(面倒なだけでムズカシイお話は何もありません)

=IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet1'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet1'!A:C,2,FALSE))
&IF(ISERROR(VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet2'!A:C,2,FALSE)),"",VLOOKUP(SUBSTITUTE(B$1,"-",""),'c:\フォルダ\[名簿ブック.xls]Sheet2'!A:C,2,FALS...続きを読む

QExcelのシート名・ファイル名

WindowsXP Home SP2,Office XPを使っています。
Excelでファイル(F)のプルダウンメニューに出てくる最近使ったファイル名・新しいブック→ブックを開くの最近使ったブック名からそれぞれ初期化するのではなく特定の1項目だけを消す方法をご教示ください。

Aベストアンサー

レジストリの
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Recent Files
のデータ側ある表示されているリストの中から該当する「特定の1項目だけ」を削除すればよろしいかと。

QExcel2003 マクロでブックを開かずにコピペ

Excel2003でC:\にあるブックBを開かずに、
開いているブックAの指定したセルをコピーしたいのですがうまくいきません。

具体的なイメージは
開いているコピー先のブックA:いろは.xls
コピー先のシート:Sheet1
コピー元のブックB:らりるれろ.xls
コピー元のシート:らりるれろ
(ブックBの名前(らりるれろ.xls)とシート名が同じなのはシステム上の仕様です。)
ブックBのC6をブックAのC5に、
ブックBのI6をブックAのC6に、
ブックBのK6をブックAのC7に、
ブックBのH6をブックAのC8にコピーしたいと考えています。


宜しくお願いします!

Aベストアンサー

>Excel2003 マクロでブックを開かずにコピペ
根本的にマクロでは開いていないブックの参照が出来ません

一旦開いてコピー後に閉じるとの動作が必要

どうしても開くのがイヤダと言うのであれば

Range("C6").Select
ActiveCell.FormulaR1C1 = "='C:\[らりるれろ.xls]らりるれろ'!R5C3"


とすれば、開かずに参照できる

計算式でなく値がほしいのであれば


Range("C6").Select
ActiveCell.FormulaR1C1 = "='C:\[らりるれろ.xls]らりるれろ'!R5C3"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False


とでもすれば良い

>Excel2003 マクロでブックを開かずにコピペ
根本的にマクロでは開いていないブックの参照が出来ません

一旦開いてコピー後に閉じるとの動作が必要

どうしても開くのがイヤダと言うのであれば

Range("C6").Select
ActiveCell.FormulaR1C1 = "='C:\[らりるれろ.xls]らりるれろ'!R5C3"


とすれば、開かずに参照できる

計算式でなく値がほしいのであれば


Range("C6").Select
ActiveCell.FormulaR1C1 = "='C:\[らりるれろ.xls]らりるれろ'!R5C3"
Selection.Copy
Selection.PasteSpecia...続きを読む

Qエクセルで同じファイル名のファイルを別のファイル名で保存したい

エクセルで、社員に同じテンプレートのファイルに入力してもらい、それを集計するつもりです。集まったファイルは同じファイル名なので、別のファイル名としてフォルダに保存したいのですが、簡単にできる方法やフリーソフトはないでしょうか。

Aベストアンサー

メールの添付Book.xls(テンプレ)を開くと 集計Bookにシートを移動
準備
1.集計用のBookを作成(新規  集計.xls など)
2.Tool>マクロ>VisualBasicエディターを起動
3.ThisWorkBookに下記マクロを貼り付け
調整
1.テンプレ名 = "*" を実際のテンプレ名にする。
   *はワイルドカード 例 "*.xls" "*日報*.xls" 
2. Set 名前のセル = Workbooks(1).Sheets(2).Range("A1")の
  セルをテンプレの送信者の名前のあるセルにする。
       例  ・・・.Range("B5")など
3.テンプレのシートが複数なら・・・別途
  
使いかた
1.集計用のBook(マクロ入り)を開く
2.メールの添付 テンプレ.xls を開く。

結果 自動で
 エクセルで開いたときに シート(名前+日付)として テンプレを取り込む。
 開いたテンプレは自動終了するので
 同じ名前のBook、テンプレは同時に開くことを回避。
 

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
テンプレ名 = "*" '*テンプラ.xls" '実際に併せて設定
If Workbooks(2).Name Like テンプレ名 Then

Application.EnableEvents = False
Application.ScreenUpdating = False
Application.DisplayAlerts = False

On Error Resume Next
'メールの添付Book(テンプレ)を開くと 集計Bookにシートを移動
Workbooks(2).Sheets(1).Copy after:=Workbooks(1).Sheets(1)
Workbooks(2).Close
'送信者識別処理、重複防止処理、シート名変更処理
Set 名前のセル = Workbooks(1).Sheets(2).Range("A1")
提出者名 = 名前のセル.Value '提出者名
シート名 = 提出者名 & Format(Now, "yymmdd") '名前+日付
Err = 0
If Workbooks(1).Sheets(シート名).Name = シート名 Then
'既にこの人のテンプレは読み込み済み:更新しない処理??
If Err = 0 Then Workbooks(1).Sheets(2).Delete
End If

If Err Then
'新しい読み込みシート
Workbooks(1).Sheets(2).Name = シート名
End If

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True

End If

End Sub

メールの添付Book.xls(テンプレ)を開くと 集計Bookにシートを移動
準備
1.集計用のBookを作成(新規  集計.xls など)
2.Tool>マクロ>VisualBasicエディターを起動
3.ThisWorkBookに下記マクロを貼り付け
調整
1.テンプレ名 = "*" を実際のテンプレ名にする。
   *はワイルドカード 例 "*.xls" "*日報*.xls" 
2. Set 名前のセル = Workbooks(1).Sheets(2).Range("A1")の
  セルをテンプレの送信者の名前のあるセルにする。
       例  ・・・.Range("B5")など
3.テンプレのシ...続きを読む

QEXCEL 別のブックにコピペしたときのセル参照

2つのエクセルブックがあります。

ブックA:sheet1、sheet2
ブックB:sheet1

ブックAのsheet2にはブックAのsheet1を参照した関数が沢山組んであります。
このsheet2をブックBにコピーしたいのですが、ブックBに新しいシートを作りコピペしても、
sheet2を右クリックで「移動またはコピー」にしてもブックBに移したsheet2はブックAを参照してしまいます。 
 =SUM([ブックA.xls]Sheet1!A3:A7) というように。

ブックAではなく、ブックBのsheet1を参照するように =SUM(Sheet1!A3:A7) となるようにコピペしたいのです。
1つ1つ関数の参照部を消すのも面倒なので、何か良い方法はありませんでしょうか

エクセル2003です。よろしくお願いします。

Aベストアンサー

次の手順を試してみてください。

1.とりあえず、ブックBを上書き保存して、開いたままにしておく
  (ブックAは閉じても構わない)
2.[編集]→[リンクの設定]を実行
3.[リンク元の変更]をクリック
4.ブックBを指定して[OK]をクリック
5.[閉じる]をクリック
6.上書き保存

ね、簡単でしょ?

Q(Excel)VBA ファイルパスからファイル名を求める

Excel97のVBAで
 f-name = Application.GetOpenFilename()
とするとf-nameにはオープンしたファイルのパスを含めたファイル名が代入されます。
これをそのまま
 Workbooks(f-name).close
とすると、パス部分が余分なのかエラーになります。
そこで、このf-nameからファイル名(ブック名)だけ切り出す方法があれば教えてください。
もしくはこのオープンからクローズまでの流れとして良いやり方があれば教えてください。

Aベストアンサー

Excel97の場合は、最後の『\』を探しにいく必要があると思います。下記は処理例です。
キャンセルした時のf-nameは別途処理してください。

Public Function myFileName(flName As String)
  Dim L As Integer
  For L = Len(flName) To 1 Step -1
    If Mid(flName, L, 1) = "\" Then
      myFileName = Right(flName, Len(flName) - L)
      Exit For
    End If
  Next
End Function


人気Q&Aランキング

おすすめ情報