アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル上で既に作成してあるグラフの、要素ごとの式から参照先の部分を取り出して、そこを置換することで参照先を変更したグラフを多量に複製したり、
必要な部分だけのグラフを複製したりといった作業を考えているのですが、その参照先がうまく取り出せずに難儀しています

(SeriesCollection.fomulaはだいたいこんな感じになることが多くなっています
=SERIES('Sheet1'!$B$14,('Sheet1'!$C$13:$E$13,'Sheet1'!$G$13:$J$13,'Sheet1'!$R$13:$V$13),('Sheet1'!$C$14:$E$14,'Sheet1'!$G$14:$J$14,'Sheet1'!$R$14:$V$14),1)

初めは”,”で分割して”=SERIES(”や”(”を消せばよいだろうと簡単に考えていたのですが、シート名に混じっている”(”を消してしまいエラーすることも多く、困っています

セルの参照先を見るときのDirectDependents.Addressのようにグラフの参照先簡単に取り出すことはできないでしょうか
もしくは、上記の式からセルの参照だけをうまく取り出すにはどういった文を作ればよいでしょうか

A 回答 (1件)

セル範囲を直接取り出す方法はありません。


とりあえずゴリゴリとチカワラザで

dim s as string
dim a
s = "=SERIES('Sheet1'!$B$14,('Sheet1'!$C$13:$E$13,'Sheet1'!$G$13:$J$13,'Sheet1'!$R$13:$V$13),('Sheet1'!$C$14:$E$14,'Sheet1'!$G$14:$J$14,'Sheet1'!$R$14:$V$14),1)"

s = mid(s, instr(s, ",")+1) ’最初の"=SERIES('Sheet1'!$B$14,"までカット
s = left(s, instrrev(s, ",")-1) ’最後の",1)"カット

a = split(s, iif(instr(s, "),(") > 0,""),(",","))

if left(a(0), 1) = "(" then a(0) = mid(a(0),2)
if right(a(1), 1) = ")" then a(1) = left(a(1),len(a(1))-1)

みたいなカンジでしょうか。


#ご利用のエクセルのバージョンが書かれていませんが、かなり古いエクセルでは動きません。
 ご相談投稿では、ご利用のソフトのバージョンまでキチンと明記する事を憶えて下さい。

この回答への補足

情報が足らずにすみません、エクセルは2007になります

補足日時:2013/09/11 11:01
    • good
    • 0
この回答へのお礼

やはりありませんか…
とりあえず今ゴリゴリ法で作業しています

グラフの範囲は","だけでフィールドが分かれていればいいんですが、"()"が来るとそこの中に入れ子でまた","が来るのが面倒ですね
知らないだけで、さらに深い入れ子や別のデリミタがあるんじゃないかと思うと時折不安になります

しばらくこのまま置かせて頂いて、他に解決法がなければベストアンサーにさせていただこうと思っています
有難うございます

お礼日時:2013/09/11 10:59

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