エクセル形式の申請書を受領し、その一覧表をエクセルで作成したいと思っています。
申請書の形式は同じなので、名前、住所、性別などの項目を
1つ1つ一覧表にコピペすればよいのですが、
受領する度に1つ1つの項目を一覧表へ、貼り付けしなくてはなりません。
例:
申請書一覧表.xls
申請書01.xls
申請書02.xls
申請書03.xls
私が考えているやり方では、一覧表の例えばA1に申請書のファイル名(申請書01.xls)、
B1に申請書のワークシート名(sheet1)を入れれば、自動的に申請書の各項目を
一覧表の行(C1,D1,・・・)へ引っ張って来るような一覧表を作成したいと思っています。
これを実現するのに、一覧表のC1セルに、=INDIRECT("["&A1&"]"&B1&"!$C$3")
・A1は一覧表上で申請書のファイル名(申請書01.xls)を記名したセル
・B1は一覧表上で申請書のワークシート名(Sheet1)を記名したセル
・$C$3は申請書01.xls内の参照項目の1つ(例:名前)
で、実現をやってみましたが、
indirect関数は申請書のファイルを開いていないと出来ず、困っています。
申請書は1日に30件程度来て、一覧表だけを見て、例えば田中さんからは何件来ている
とか、一覧表のみを見れば、申請書の全てが分かるように管理したいと思っています。
処理状況管理も一覧表で行いたいと思っています。
申請書一覧表.xlsは、申請書01.xlsよりも一段上のフォルダに置きたいと思っていますが、不可能なら、申請書と一緒のフォルダでも構いません。
また欲を言うと、一覧表から申請書をクリックで開けるようにできたら良いと
思っています。
良い実現方法がありましたら、教えてください。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#1です。
>下記の、
>>="=["&A1&"]"&B1&"!$C$3"
>>上記の式をD1に入力し、それをE1セルへ値コピー後、F2キー、Enterキー
>>とすれば大丈夫かと思います。
>を試してみたのですが、上記をそのまま入れると、
>そのまま=[申請書一覧表.xls]Sheet1!$C$3とそのまま表示されるだけで、
>申請書から引っぱって来ません。
普通に式を入力すれば、文字列としての=[申請書一覧表.xls]Sheet1!$C$3というのが表示されるのは問題無いです。
なので、それを隣のセルなどにコピーして、形式を選択して貼り付けから値で貼り付けます。
そうすると、セルの値も=[申請書一覧表.xls]Sheet1!$C$3というのに変わります。
ここまでは文字列とされてますので、数式としてExcelに認識させる為に、F2キーを押して編集してからエンターで確定させる事です。
F2キーでなくても、ダブルクリックしてセルを編集できるようにしてからのエンターでもOKです。
※表示形式が文字列になっている場合はできないので、標準に直して下さい。
下記はちょっとしてヒントになりますが、
まず、申請書01.xlsを開いておき、申請書一覧表.xlsのどこかのセルに=(半角イコール)を入力し、申請書01.xlsのどこか一つのセルを指定します。
そうすると、=[申請書01.xls]Sheet1!$C$3のような数式になると思います。
その後に申請書01.xlsを閉じると、
='C:\●●●●●\◇◇◇◇◇\[申請書01.xls]Sheet1'!$C$3
みたいになると思います。
これを参考にしてもらえればある程度対応できると思われます。
毎日ファイル名が変更されないのであれば、一回この方法で全部のセルを参照すれば翌日から自動で参照してくれると思います。
上記の件、ありがとうございました。
やり方としては、申請書のワークシートを
一覧表のワークシートへ移して、=indirect()を使うようにして、
対応することにしました。
色々とありがとうございました。
No.2
- 回答日時:
VBAの一例です
申請書一覧表のsheet1の
A1に申請書のファイル名(申請書01.xlsなど)
B1に申請書のワークシート名(sheet1など)
申請書ファイルがあるフォルダ名を"C:\"に
myFolder = "C:\"
申請書から引っぱって来くる、セル
myData = Array("c1", "d1", "e1", "f1", "g1")
それぞれ書き換えてください
'標準モジュールへ
Sub test()
Dim myFolder As String
Dim myFile As String
Dim myWS As String
Dim myBook As Workbook
Dim myData As Variant
Dim 開いたブック As Workbook
Dim i As Integer
Set myBook = ActiveWorkbook
myFolder = "C:\"
myFile = myBook.Worksheets("sheet1").Range("a1").Value
myWS = myBook.Worksheets("sheet1").Range("b1").Value
myData = Array("c1", "d1", "e1", "f1", "g1")
Workbooks.Open filename:=myFolder & "\" & myFile
Set 開いたブック = Workbooks(myFile)
For i = 0 To UBound(myData)
myBook.Worksheets("sheet1").Range(myData(i)).Value _
= 開いたブック.Worksheets(myWS).Range(myData(i)).Value
Next
開いたブック.Close SaveChanges:=False
End Sub
試す場合はコピーを取ってね
意味がわからなければ無視してね
上記の件、ありがとうございました。
VBAに関して良く分からなくてすいません。
ALT+F11をして貼り付け・・・みたいなことをすると
思うのですが、分からなくてすいません。
やり方としては、申請書のワークシートを
一覧表のワークシートへ移して、=indirect()を使うようにして、
対応することにしました。
色々とありがとうございました。
No.1
- 回答日時:
完全な処理をしようとすると、VBAを使わないとできないように思いますが、
ある程度であれば関数でもできると思います。
INDIRECT関数は対象のファイルを開いていないと無理なので、
='C:\[申請書.xls]Sheet1'!$C$3
のように直接参照すればファイルが閉じていても値が表示されるはずです。
毎回決まったフォルダで同じファイル名であれば、一度数式を入力しておくと大丈夫だと思いますが、そうでなければ
="=["&A1&"]"&B1&"!$C$3"
上記の式をD1に入力し、それをE1セルへ値コピー後、F2キー、Enterキーとすれば大丈夫かと思います。
これは数が多いと大変ですが、毎日ファイル名などが変わる場合はVBAを使った方が楽です。
>また欲を言うと、一覧表から申請書をクリックで開けるようにできたら良いと
>思っています。
こちらについては、ハイパーリンクで対応ができると思います。
=HYPERLINK("C:\申請書.xls")
などとすればクリックしてファイルが開きます。
私であれば、VBAで対象フォルダのファイルをファイル名やフォルダ名や更新日などで全て検索し、
対象ファイルを順次開いて必要な値をコピーしてファイルを閉じます。
ただ、今回は申請書の形式が同じという事なのでそこまでしなくても大丈夫でしょうし、
VBAの指定が無いので詳細は割愛します。
この回答への補足
abe_oneselさん
早速のご回答、ありがとうございます。
詳細は、じっくりやってみますが、
下記の、
>="=["&A1&"]"&B1&"!$C$3"
>上記の式をD1に入力し、それをE1セルへ値コピー後、F2キー、Enterキー
>とすれば大丈夫かと思います。
を試してみたのですが、上記をそのまま入れると、
そのまま=[申請書一覧表.xls]Sheet1!$C$3とそのまま表示されるだけで、
申請書から引っぱって来ません。
VBAで実現できるのであれば、そうしたいですが、
知識が無いので、全然分かりません。
色々やって、また分からなかったらまた質問させて頂きます。
上記の件、ありがとうございました。
やり方としては、申請書のワークシートを
一覧表のワークシートへ移して、=indirect()を使うようにして、
対応することにしました。
色々とありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- 確定申告 e-taxで開業届を出す方法がわかりません 1 2022/06/01 19:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Excel(エクセル) エクセルシートをVBAでpdfで保存したい 2 2022/06/27 10:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 Tan(θ)-1/Cos(θ)について...
-
スマートな関数を教えて下さい。
-
Excel ウインドウ枠の固定をす...
-
EXACT関数とIF関数の組み合わせ...
-
4つのパターンを表示するEXACT...
-
関数を教えて下さい。
-
Excel:一部のフォントでセルの...
-
エクセルで指定した日付、店舗...
-
エクセルでセルに「氏名を入力...
-
Excel 2019 のピボットテーブル...
-
スプレッドシートの関数VLOOKUP...
-
エクセルで日付の入ったセルの...
-
Excelファイルの「数式」タブ→...
-
excelの不要な行の削除ができな...
-
Excelのif関数で文字が見えなく...
-
各ページの1番上の表示について
-
エクセル関数に詳しい方、教え...
-
INDIRECTを使わず excelで複数...
-
Excel 2019 は、SPILL機能があ...
-
UNIQUE関数が使えないバージョ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報