中小企業の働き方改革をサポート>>

エクセル関数で、開いてないブックへの参照を変更する方法を教えてください。

Indirect関数は開いているブックへの参照にしか使えません。

現在は、マクロで参照式を書き換える方法(置き換える方法)を使っていますが、
時間が掛かるのと、できれば(後々別の人でもメンテナンスができるように)マクロは使わずに処理したいと思っています。

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (3件)

ご質問の意味を理解していないかも知れませんが、


リンク貼り付けなどで出来る参照式を変更すれば良いのでは?

参照先ファイルが開いてない場合、='C:\Users\hoge\Desktop\[huga.xlsm]Sheet1'!$A$1
参照先ファイルが開いている場合、=[huga.xlsm]Sheet1!$A$1

開いてないブックの内容を変えるのであれば、開く必要がありますが。。

>後々別の人でもメンテナンスができるように
関数でもVBAでもメンテナンスには一定のスキルが必要になりますね。

VBAでもメンテナンスしやすいように工夫すれば、
作成に苦労するだけでわかり易くは出来ると思います。(処理内容によりますが)

例えば、
変更する可能性のあるものを設定シートなどに書き、参照、設定させるとか、(シート上で確認できる)
シート、表組みの配置や構造を関数やキーワードなどで都度検索し特定するとか、簡単なマニュアル、ヘルプを作成するとか
むしろ、変更されたくない様々な変更に対して警告や変更後の挙動(設定シートに書き出す、ヘルプなどを出力する)を作成すれば
かなり運用者にはわかり易くなると思います。

よくVBAで作成されたファイルは、変更があると動かないと言われますが、もちろん事実ではありますが
動かないように作成されているからで、そもそも、変更を捕まえられるなら、その行為にアドバイスするような
プログラムを書けばよい事になりますね。
規模が分からないので勝手な事を書きました。

的外れなら、忘れてください。
    • good
    • 0

#1です。

答えになっていないコメントをお許しください。

>マクロは使わずに処理したいと…
業務の全容が分からないので、マクロにすると、ワンクリックで処理する。
けれどエクセルのバージョンが変わるとコードも対応しなくなるので修正必要。

なら、

・マクロ仕様について後任の方に技術指導する。引き継ぐ期間は二人体制の担当にする。
・マクロをやめるなら、ブックを開く操作から関数を埋め込む手順のマニュアルを作る。
 操作員は一つずつ指でマニュアルを指しながら操作する

いずかの形づくりをして、後任者は、一つ一つ順を追って覚えてもらう。

自身、質問の意図と外れた勝手なことを書きましたことをご了承下さい。
    • good
    • 0

自身の経験では、ブックを開かないと参照はできないと思います。



今回、マクロコードは提示まではしませんが、
(1)マクロで開いていないブックを開く
(2)マクロで関数を埋め込む
なら、可能です。

Indirect関数は使ったことはありませんが、データを参照する場合、参照元のブック名かシート名の指定が必要です。
指定されていても閉じたブックだったら無効かと思います。

>マクロで参照式を書き換える方法(置き換える方法)
自身の業務で使ったエクセルも同じような使い方をしていました。
毎回、直していました。入力ミスをすると動きません。

ゆえ、
マクロで同じフォルダに入っているエクセルファイルを探し、ファイル名を取得する
そのファイルを開き、シートも指定し、データをコピペする
その後で、開いたファイルを閉じる
の機能を与えられないか試行錯誤しました。

全てネットで命令を調べたり、マクロの自動記録を使って得たコードを適当に解読して修正したりしました。
何とか、イメージに近いマクロが出来て、「マクロのコードを開いては直す」必要がなくなり、マクロのことを知らない方でも違和感なく使っています。

※形づくりには、かなり苦労しましたね。
    • good
    • 0
この回答へのお礼

早速のご返信、ありがとうございます。
私も、マクロには苦労させられました。(VBに代ってからは特に)
現状のやり方は、ボタンにマクロを仕込んで、誰でも使える様にしております。
将来、エクセルのバージョンが変わったりして、プログラムの修正が必要になった場合、
よく知っている人でないとメンテできなくなることを危惧しております。
ネットでIndirect関数を知り、いろいろテストしてみましたが、「閉じたブックに対しては使えない」
事が判り、今回の質問をさせていただきました。
マクロなしでは無理なのでしょうか? もし、可能性のある情報がありましたら、お教えください。
返信、ありがとうございました。

お礼日時:2020/05/23 22:05

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


このカテゴリの人気Q&Aランキング

おすすめ情報