- 締切済み
Excelの参照について。
こちらでは初めて質問させてもらいます。マクロ初心者です。長くなりますが携帯からなので画像貼れずにすいません。 vistaで2007使用です。 Sheet1に備品一覧表(結合セルなしで1行に備品ひとつ分が15列で400行くらい)があり、Sheet2に個表(空欄で枠のみの表で横に3品、縦に3品の9品分を1ページに印刷できるよう設定)を作成したいです。 Sheet2はSheet1の1行の中から一部を抽出して作製したい様式の違う表です。 例えばSheet1のA1がSheet2のA1からC1を結合したセルに、Sheet1のD1がSheet2のB2に、Sheet1のN1がSheet2のC3に…など 1つ目の参照が終わったら2つ目はSheet1のA2がSheet2のD1からF1を結合したセルに、Sheet1のD2がSheet2のE2に、Sheet1のN2がSheet2のF3に…という具合で もう1つ分右にいってから 4つ目は1つ目の下に移動しSheet1のA4がSheet2のA13からC13を結合したセルに、Sheet1のD4がSheet2のB14に、Sheet1のN4がSheet2のC15に…という具合で400行分参照するようにしたいのです。 Sheet2の各セルに一つ一つ参照を設定していくのも大変なので、Sheet1の必要なセルを参照してSheet2の各セル(結合セルあり)に表示させるマクロをつくりました。 今後Sheet1で変更したいのでコピー貼り付けでは都合がよくありません。いろいろ参考にさせてもらってヘルプで意味を調べながら作ったのですが、下記のコードでSheet1に文字が入っているセルの参照はできましたが、Sheet1に関数を入れているセルの参照の部分がうまくいきません。(関数が表示されます) Sheets(2).Select Cells(x, y).Select ActiveCell.FormulaR1C1 = "=Sheet1!R[" & CStr(i) & "]C[" & CStr(j) & "]" Sheet1で使った関数はこれです。 =IF(M10=1111111,"不明","H"&RIGHT(M10,6)) Sheet1のM列には購入日を数値化した七桁の数字(例えば4210310はH21.3.10のこと)が入っていて、N列に関数でH210310(ホントはH21.3.10としたいができませんでした。)と表示させそれをSheet2で参照させようと考えました。 文章表現がわかりにくいところがあると思いますし、マクロ初心者のため簡単なところが間違っているのかもしれませんが自分で解決できないのです。どなたかお助け下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
マクロに関してはFor~Nextなどの繰り返し構文で作ればいいとは思うのですが、苦手なので関数の部分だけ。 >ホントはH21.3.10としたい =IF(M10=1111111,"不明",1*TEXT(RIGHT(M10,6),"!H00-00-00")) TEXT関数を使い日付の文字列を作り、計算をさせることで数値化します H21.3.10は39882となりますので、表示形式を日付に変える必要があると思います
お礼
早速の回答ありがとうございます。まだ、このサイトの使い方が分かってなくて、自分の質問に対するお礼のメッセージを書き込むときにどういう手順で探すのが早いのか戸惑い遅くなりました…。 おかげで関数の部分は妥協していたことがうまくできました。ありがとうございます。 マクロの構文も関数の種類もよく知らず、したいことや困ったこと(今回は「参照、Excel、関数、マクロ」です。)を検索項目に設定して、いろいろな構文・意見を参考に試行錯誤しながらExcel勉強中です。 For...nextで記入している構文の ActiveCell.FormulaR1C1 = "=山口!R[" & CStr(i) & "]C[" & CStr(j) & "]" の部分で関数で得た文字(H21.3.10)を取得したいのですが…。 関数をマクロで使う方法を検索してみます。もうしばらく試行錯誤してみます。