
マクロを作成しておりますして、わかりづらいか質問もしれませんが宜しくお願いします。
(1)マクロを配布し先方(複数拠点)で持っているブックに変更をかけ
たい。
(2)そのブック内には複数シートがあり、計算式で他シートを参照して
いる。
(3)その計算式を変更かけたい。が(2)でいう参照シートのシート名を各
拠点にて変更しているので、計算式も変更後のシート名が入って
いる。
例えば、
シート1のA1セルに「=(xxxxx)!B1/C5」という式を埋め込みたい。
※(xxxxx)はシート名。
でも、(xxxxx)のシート名は拠点によってシート名がことなることが
問題。尚、シート名以降の計算式は全拠点共通。
そこで、こんなことがやれればのイメージですが
イメージ1:
シート1の他のセル(D1)で(xxxxx)と同じシート名を参照している
式が必ず存在している。拠点毎にシート名は異なるがセル(D1)の
場所は共通。
このセル(D1)の式からシート名を抽出し、上の「=(xxxxx)!B1/C5」
の(xxxxx)に入れて、シート1のA1セルにこの計算式を記載する
マクロを作る
イメージ2:
もし「=(xxxxx)!B1/C5」の(xxxxx)部分に仮名称を入れたものを
マクロでシート1のA1セルに書き込んだあと、各拠点にて(xxxxx)
→それぞれ拠点で使っているシート名に置換する ような方法があ
るか?(存在しない参照シート名のまま書き込むとファイル指定の
ダイアログが開くので、開かないような汎用的な記述を一旦仮置き
できないか?)
以上宜しくお願いしたします
No.1ベストアンサー
- 回答日時:
数式からシート名の抽出例
数式の、= 直後にシート名がある場合です。
Dim f As String
Dim n As Integer
f = Sheets("シート1").Range("D1").Formula
n = InStr(f, "!")
MsgBox Mid(f, 2, n - 2)
とか
Dim f As String
f = Sheets("シート1").Range("D1").Formula
MsgBox Split(Split(f, "=")(1), "!")(0)
D1セルの数式からシート名を抽出
参照シート名を当てはめてからA1に書き込む
というようにすればどうでしょうか。
Dim f As String
Dim ws As String
f = Sheets("シート1").Range("D1").Formula
ws = Split(Split(f, "=")(1), "!")(0)
Sheets("シート1").Range("A1").Formula = "=" & ws & "!B1/C5"
この回答への補足
ありがとうございます。教えていただいた
Dim f As String
Dim ws As String
f = Sheets("シート1").Range("D1").Formula
ws = Split(Split(f, "=")(1), "!")(0)
Sheets("シート1").Range("A1").Formula = "=" & ws & "!B1/C5"
で、うまくいきそうです。
Splitは知らなくてネット見ても今一使い方が?なんで、宜しければ意味が分かればと・・・
4行目の「f」→対象も文字列、「"="」→区切り?、「(1)」「(0)」の
意味は?
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで条件によりフォントサイズ...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
EXCEL:同じセルへどんどん足し...
-
別シート参照のセルをシート毎...
-
基本となるシートをコピーした...
-
エクセルでファイルを開いたと...
-
特定のシートの削除を禁止した...
-
EXCELで同一フォーマットのシー...
-
串刺し計算の中のあるシートを...
-
エクセルVBAでパスの¥マークに...
-
至急お願いします。エクセルシ...
-
エクセル:ブックを開くとき、...
-
シート名ではなく、相対位置で...
-
複数のシートで同時にシートの...
-
シート番号からシート名を取得する
-
googleスプレッドシートで、内...
-
EXCELで1ヶ月分の連続した日付...
-
エクセルでシートの数を数える...
-
シートを追加・名前を次月に変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
-
前の(左隣の)シートを連続参...
-
別シート参照のセルをシート毎...
-
エクセルで前シートを参照して...
-
エクセルでファイルを開いたと...
-
特定のシートの削除を禁止した...
-
Excelで金銭出納帳。繰越残高を...
-
エクセル 計算式も入っていない...
-
Excel、同じフォルダ内のExcel...
-
EXCEL:同じセルへどんどん足し...
-
VBAでシートコピー後、シート名...
-
複数シートの特定の位置に連番...
-
シートの保護のあとセルの列、...
-
Accessのスプレッドシートエク...
-
VBAで条件によりフォントサイズ...
-
エクセルVBAでパスの¥マークに...
-
Excelのシートを、まとめて表示...
-
エクセルで複数設定したハイパーリンク先...
-
エクセルで毎回1枚目のシートを...
おすすめ情報