![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ご質問の意味を理解していないかも知れませんが、
リンク貼り付けなどで出来る参照式を変更すれば良いのでは?
参照先ファイルが開いてない場合、='C:\Users\hoge\Desktop\[huga.xlsm]Sheet1'!$A$1
参照先ファイルが開いている場合、=[huga.xlsm]Sheet1!$A$1
開いてないブックの内容を変えるのであれば、開く必要がありますが。。
>後々別の人でもメンテナンスができるように
関数でもVBAでもメンテナンスには一定のスキルが必要になりますね。
VBAでもメンテナンスしやすいように工夫すれば、
作成に苦労するだけでわかり易くは出来ると思います。(処理内容によりますが)
例えば、
変更する可能性のあるものを設定シートなどに書き、参照、設定させるとか、(シート上で確認できる)
シート、表組みの配置や構造を関数やキーワードなどで都度検索し特定するとか、簡単なマニュアル、ヘルプを作成するとか
むしろ、変更されたくない様々な変更に対して警告や変更後の挙動(設定シートに書き出す、ヘルプなどを出力する)を作成すれば
かなり運用者にはわかり易くなると思います。
よくVBAで作成されたファイルは、変更があると動かないと言われますが、もちろん事実ではありますが
動かないように作成されているからで、そもそも、変更を捕まえられるなら、その行為にアドバイスするような
プログラムを書けばよい事になりますね。
規模が分からないので勝手な事を書きました。
的外れなら、忘れてください。
ご回答、ありがとうございました。
詳細を記さない問い合わせで、混乱させて申し訳ありません。
【やりたいこと】
(1)毎日、「日付をファイル名にしたエクセルファイル」が、フォルダにたまっていきます。
(2)別のエクセルファイルで、「日付をファイル名にしたエクセルファイル」の特定のセルにリンクを張って、集計したり、グラフを表示したりします。また、別の日付の集計結果やグラフと比較したりします。
(3)集計やグラフを表示したい日付にするため、「置換」機能を使って、参照式のファイル名を別の日付に書き換えています。
上記の(3)の作業を省力化するため、日付を選択して、ボタンを押すと、参照式のファイル名を書き換えるマクロを作りました。
しかし、時間も結構掛かるのと、VBAのコマンドが変わるなど将来のメンテを懸念して、Indirectのような機能で、且つ、開いてないBookへの参照式を変更できる「関数」はないだろうか?
という悩みです。
言われるように、マクロの構造次第ではメンテしやすい構造にできるのだろうと思いますが、その点は怠けています。
混乱させてしまい、申し訳ありませんでした。
ご回答ありがとうございました。
No.2
- 回答日時:
#1です。
答えになっていないコメントをお許しください。>マクロは使わずに処理したいと…
業務の全容が分からないので、マクロにすると、ワンクリックで処理する。
けれどエクセルのバージョンが変わるとコードも対応しなくなるので修正必要。
なら、
・マクロ仕様について後任の方に技術指導する。引き継ぐ期間は二人体制の担当にする。
・マクロをやめるなら、ブックを開く操作から関数を埋め込む手順のマニュアルを作る。
操作員は一つずつ指でマニュアルを指しながら操作する
いずかの形づくりをして、後任者は、一つ一つ順を追って覚えてもらう。
自身、質問の意図と外れた勝手なことを書きましたことをご了承下さい。
不明確な問い合わせで、申し訳ありませんでした。
#3様のお礼欄に「やりたいこと」を少し具体的に記入しました。
#2様の言われるように、しっかり引き継いだり、マニュアルを準備するなどで、将来の懸念は解消できると思います。
開いてないファイルへの参照式の中の「ファイル名を切り替える」事が、関数でできなければ、現在のマクロを使い続けるしか(今のところ)手が無いように思えております。
別視点からのご意見ありがとうございました。
No.1
- 回答日時:
自身の経験では、ブックを開かないと参照はできないと思います。
今回、マクロコードは提示まではしませんが、
(1)マクロで開いていないブックを開く
(2)マクロで関数を埋め込む
なら、可能です。
Indirect関数は使ったことはありませんが、データを参照する場合、参照元のブック名かシート名の指定が必要です。
指定されていても閉じたブックだったら無効かと思います。
>マクロで参照式を書き換える方法(置き換える方法)
自身の業務で使ったエクセルも同じような使い方をしていました。
毎回、直していました。入力ミスをすると動きません。
ゆえ、
マクロで同じフォルダに入っているエクセルファイルを探し、ファイル名を取得する
そのファイルを開き、シートも指定し、データをコピペする
その後で、開いたファイルを閉じる
の機能を与えられないか試行錯誤しました。
全てネットで命令を調べたり、マクロの自動記録を使って得たコードを適当に解読して修正したりしました。
何とか、イメージに近いマクロが出来て、「マクロのコードを開いては直す」必要がなくなり、マクロのことを知らない方でも違和感なく使っています。
※形づくりには、かなり苦労しましたね。
早速のご返信、ありがとうございます。
私も、マクロには苦労させられました。(VBに代ってからは特に)
現状のやり方は、ボタンにマクロを仕込んで、誰でも使える様にしております。
将来、エクセルのバージョンが変わったりして、プログラムの修正が必要になった場合、
よく知っている人でないとメンテできなくなることを危惧しております。
ネットでIndirect関数を知り、いろいろテストしてみましたが、「閉じたブックに対しては使えない」
事が判り、今回の質問をさせていただきました。
マクロなしでは無理なのでしょうか? もし、可能性のある情報がありましたら、お教えください。
返信、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelのindirect関数の別ブック参照について質問です。 1 2022/06/03 15:17
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) excelのマクロ実行でブロックされます。 2 2022/06/08 09:14
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Excel(エクセル) マクロの保存先、開いてるすべてのブックの意味 エクセルを開き、表示→マクロ→マクロの表示と順番に開く 3 2022/06/25 17:52
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
-
エクセルで開いていないbookのセルの値が欲しい
Excel(エクセル)
-
-
4
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
5
外部ファイルを開かず参照したい
Excel(エクセル)
-
6
エクセルで別ブックのセルを参照する式の内部
Excel(エクセル)
-
7
INDIRECT関数の代替方法は?
Excel(エクセル)
-
8
VLOOKUP関数で開いていないファイルを参照
Access(アクセス)
-
9
参照元のブック名の変更を自動的に式に反映させたい
Access(アクセス)
-
10
excel INDIRECT 他ファイル参照
その他(Microsoft Office)
-
11
VLOOKUP,INDEX,MATCH 関数 開いていないファイルより複数の値を参照できない
Excel(エクセル)
-
12
excelのindirect関数の別ブック参照について質問です。
Excel(エクセル)
-
13
エクセルリンク先ファイル名の指定方法
Excel(エクセル)
-
14
EXCELで他のファイルデータをドロップダウンさせるには?
その他(コンピューター・テクノロジー)
-
15
ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した
Excel(エクセル)
-
16
エクセルで、月によって参照するシートを自動的に変える関数
Excel(エクセル)
-
17
Excel:数式のブック名部分を関数にしたい
その他(Microsoft Office)
-
18
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
19
Excel 相対パス
Excel(エクセル)
-
20
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで表
-
【マクロ】for next構文について
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
PDFの請求明細をエクセルにしたい
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
エクセルの関数について教えて...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシート、Excelでの数...
-
スプレッドシートで使う数式を...
-
Excelで50個のセルに同じ文字を...
-
[オートフィルタ]で抽出された...
-
エクセルの問題です。絶対値の...
-
エクセル関数を教えてください
-
各ページの1番上の表示について
-
Microsoft Officeの中古は信用...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
Excel 2019 は、SPILL機能があ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報