マクロを作成しておりますして、わかりづらいか質問もしれませんが宜しくお願いします。
(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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
エクセルVBA 数式の中に、変数で定義したシート名を入力するには
Excel(エクセル)
-
別のシートから値を取得するとき
Visual Basic(VBA)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
-
4
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
5
vba formulaの中での変数の扱い
Ruby
-
6
VBAでセル入力の数式に変数を用いたい
Excel(エクセル)
-
7
【ExcelVBA】全シートのセルの数式を値に変換する事は可能でしょうか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの複数シートの保護を...
-
別シート参照のセルをシート毎...
-
Excelで同じシートのコピーを一...
-
エクセルVBAでパスの¥マークに...
-
前の(左隣の)シートを連続参...
-
エクセルで前のシートを連続参...
-
Excel、同じフォルダ内のExcel...
-
VBAでシートコピー後、シート名...
-
Excelで金銭出納帳。繰越残高を...
-
エクセルでファイルを開いたと...
-
シートを追加・名前を次月に変...
-
複数シートの色付きセルがある...
-
シートの保護のあとセルの列、...
-
複数のピボットを同じフィルタ...
-
エクセルで、「1つ前のシート...
-
Accessのスプレッドシートエク...
-
マクロの転記について教えてく...
-
【Excel マクロ】関数での空白...
-
エクセルで前シートを参照して...
-
シートを任意の日付で自動で作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで同じシートのコピーを一...
-
エクセルの複数シートの保護を...
-
エクセルVBAでパスの¥マークに...
-
前の(左隣の)シートを連続参...
-
Excelで金銭出納帳。繰越残高を...
-
EXCEL:同じセルへどんどん足し...
-
EXCELで1ヶ月分の連続した日付...
-
シートの保護のあとセルの列、...
-
別シート参照のセルをシート毎...
-
エクセルでファイルを開いたと...
-
EXCELで同一フォーマットのシー...
-
エクセルで前のシートを連続参...
-
エクセルで前シートを参照して...
-
VBAでシートコピー後、シート名...
-
Accessのスプレッドシートエク...
-
エクセルのシート名をリスト化...
-
複数シートの特定の位置に連番...
-
Excelのシートを、まとめて表示...
-
エクセル 計算式も入っていない...
-
スプレッドシートの関数VLOOKUP...
おすすめ情報