• ベストアンサー

Excelのマクロで

Excelのマクロで 月ごとにセルを結合させたいのですがわかりません。 例えば 2010/2/20~2010/5/10 このとき A1~H1のセルを結合(2月) I1~AM1の結合(3月) というふうに表示させたいです。 2行目にはそれぞれ日を表示させたいのですが どうすればいいですか? 教えてくださいお願いします。 期間がが変更されたらその期間が表示されるように Excelマクロでお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

基本的にエクセルでは、セル結合は、使わないで済むなら、用いないほうが良い。 横に日を流しているようだが、月が変わるまでのセルをセル結合すれば仕舞い。 2セル以上のセル範囲の指定の仕方(「コード)は勉強してますか。多分おぼつかないのでは。 本題では、同じ月のセル範囲を表せる力があるかがカギ。 第2行に日付シリアル値の日付が入っているとする。 同じ月の列の第1行をセル結合し、月数字を中央に表示するコード例。 Sub test01() s = 1 r = Range("IV2").End(xlToLeft).Column MsgBox r For j = 2 To r If Month(Cells(2, s)) = Month(Cells(2, j)) Then Else MsgBox j Range(Cells(1, s), Cells(1, j - 1)).MergeCells = True Range(Cells(1, s), Cells(1, j - 1)).HorizontalAlignment = xlCenter Cells(1, s) = Month(Cells(2, s)) s = j End If Next j Range(Cells(1, s), Cells(1, r)).MergeCells = True Range(Cells(1, s), Cells(1, j - 1)).HorizontalAlignment = xlCenter Cells(1, s) = Month(Cells(2, s)) End Sub >A1~H1のセルを結合(2月) は計算違いだろう。 ーー >期間がが変更されたらその期間が表示されるように の意味がわからないが、 VBAで処理した結果は、基本的には、データが変わったら再実行だガ。何のことかな。 汲み方によってはプログラムの修正に鳴る。 ーーー 質問者は、課題を丸投げで、普通この程度のことは、手作業でやっていると思うが、なぜVBAでやるのかな。

関連するQ&A

  • エクセルのマクロについて 教えてください。

    エクセルのマクロについて 教えてください。      1          2      …  A あ い う え   お □ □ □       ※□はスペース B か □ □ □   き く け こ C さ し □ □   す せ そ □  : 上記、表を下のように並べ替えたいのですが… ※1行目は4つのセルの結合 1 A あ い う え 2 A お □ □ □ : 1 B か □ □ □ 2 B き く け こ : 1 C さ し □ □ 2 C す せ そ □ :

  • エクセルのマクロ記述について

    下記の処理をエクセルのマクロで行いたいのですが、どのように記述したよいか教えてください。 4行目から入力されている行まで下記の処理をマクロで行う。 1.J列のセル入力がCIRCLEの行で、B~E列の数値が同じセル間を結合する。 2.K列のセル入力がCIRCLEの行で、F~I列の数値が同じセル間を結合する。 3.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じ場合、B列をB列の数値XC列の数値とし、B~E列のセルを結合する。 4.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じ場合、F列をF列の数値XG列の数値とし、F~I列のセルを結合する。 5.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じでない場合、B列をB列の数値XC列の数値とし、B,C列のセルを結合する。又、D列をD列の数値XE列の数値とし、D,E列のセルを結合する。 6.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じでない場合、F列をF列の数値XG列の数値とし、F,G列のセルを結合する。又、H列をH列の数値XI列の数値とし、H,I列のセルを結合する。 7.J列のセル入力がSHAPEの行で、B~E列は何もしない 8.K列のセル入力がSHAPEの行で、F~I列は何もしない

  • マクロで可能でしょうか??

    初めまして ken2308といいます。 Excelは有る程度、使えるのですが 業務上マクロを覚えることになりました。 マクロに関しては全くのシロウトです。 Excelのマクロで以下のような事をやろうと思っておりますが Excelのマクロでは対応は可能でしょうか?? 【例】 Excelファイルが2つあります。 このファイルの大きさが【50列】×【50行】あり 【列】は飛び飛びで20列ほど非表示にており 【行】は複数のセルを結合して有ります。 このファイルを1つのファイルにしたいのですが Excelのマクロでは対応は可能でしょうか?? 自分としては以下のマクロを作成すればよいと 思っているのですが・・・ (1)列・行ともに非表示⇒表示にする。 (2)結合しているセルを解除戻す。 (3)2つのファイルをコピペする。 (4)貼り付け後、不要な列を削除する。 ※このマクロがうまく行ったら、上記で出来たファイルから  ピボットテーブルを作成するつもりです。

  • エクセルのマクロの記録について

    こんばんわ。マクロの超初心者ですが、 最終的に、デフォルトの大きさのセルを、ボタンを押して自動で A1=行高 100 A2=行高 200 A3=行高 300 B1~B3は、結合 で完成となる物を作ろうとしています。(列幅は、考えない物としています) 手順として、マクロの記録をスタートして (1)1行目の行高を100にする (2)2行目の行高を200にする (3)3行目の行高を300にする (4)B1~B3を結合する で記録を終了します。そして再生をするのですが、A1~A3の行高がきちんと設定どおりになってくれません。 一応、行高を確認すると、3つとも、200になっています。どうも、100+200+300の合計の平均の行高に設定されてしまいます。 自分なりに考えて、B1~B3の結合のせいかなと思い、なら、セルの結合をマクロの記録から外してやってみました。 (1)あらかじめ、B1~B3を結合させておく (2)マクロの記録スタート (3)1行目、2行目、3行目をそれぞれ設定する で記録終了して、再生させるのですが、やっぱり同じ結果になってしまいます。 これは、エクセルの仕様なのでしょうか?それともなにか対処方があるのでしょうか? 一応、マクロの編集も少しは、がんばってこの2週間でちょっとだけは、できるようになったようなので(かなり怪しいですが・・・) どなたかアドバイスございましたら、お願いいたします。

  • エクセルのマクロ

    エクセルのマクロを使いA行のセルの日付が今日の日付より30日以内のときはセルの色を赤くするにはどうすればよいのでしょうか?

  • Excel 2007のマクロ記述について

    Excel 2007で、B4セルからI最終行までの整数のみを小数点以下1桁にする処理をマクロで実行したいのですが、どのように記述したらよいか教えてください。 最終行とはI列にセルの値がある最後の行です。 下記の例のマクロ実行結果は、1→1.0、2→2.0となります。 (例)      列      A  B    C    D    E   F  G   H  I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2   2  2   CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6   1   1  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1   1  1.5  1.5  CIRCLE  CIRCLE マクロ実行結果      列      A  B    C    D    E   F  G   H   I    J      K  行4  A1 0.9   0.9   0.9   0.9  1.2  1.2  2.0  2.0  CIRCLE  CIRCLE    5  A2 1.4   1.4   1.6   1.6  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE    6  A3 0.71  0.71   0.71  0.71  1.0  1.0  1.5  1.5  CIRCLE  CIRCLE

  • Excel(2000)のマクロで下記の様にしたいのですが

    Excel(2000)のマクロで下記の様にしたいのですが A1 2009/5/27 (開始) B1 2009/6/3 (終了) A1からB1の日付を 4の行には月 5の行には日を 順に表示させたいのですがどうしたらいいですか? 5 ........ 6 27 28 29 .... 1 2 3 A4 5月 A5 27 B5 28 C5 29 D5 30 E5 31 F4 6月 F5 1 G5 2 H5 3 の様に。 教えてください。お願いします。

  • マクロでの行選択

    Excelのマクロについて質問です。 例えば、A1~A5セルをセル結合したときに、3行目~5行目を行選択 しようとしたときに手動で行なうとうまく選択できるのですが、マクロ で実行するとなぜか結合されている1行目から5行目が選択されて しまいます。 具体的に以下のようなマクロを書きました。 Rows.("3:5").select 手動のみでマクロ化は無理なのでしょうか? 今のままですと、一回連結をといてセルを選択して処理を実行、その のちにセルを再び連結させるということをやらなければいけなくなって しまいます。

  • エクセル マクロ 行 非表示

    マクロについてご教授お願い出来ないでしょうか。 マクロ初心者です。 エクセル アクティブセル(ex A120セルやA20セル)の行から1行目までを非表示にさせるマクロがわかりません。 アクティブセルから下の行を非表示にさせるマクロは下記URLにて紹介がありましたが・・ https://www.relief.jp/docs/excel-vba-hide-below-active-cell.html また、もし可能でしたら、アクティブセルからA2行目までの非表示、つまり 1行目は残すマクロが可能でしたら、合わせてご教授どうぞよろしくお願い致します。 

  •  いつまで経ってもパソコン超初心者でエクセルのマクロのことはまるでわか

     いつまで経ってもパソコン超初心者でエクセルのマクロのことはまるでわかりません。OSはXP3、ソフトはエクセル2000です。3列4行の表と3列3行の表を画像のように結合させるマクロを、ツール→マクロ→新しいマクロの作成→マクロ名&ショートカットキーの欄を埋めてマクロを記録させた所、セルをクリック・ドラッグしたところでしか結合させてくれません。任意のセルで実行させるにはどのようにすればよいのでしょうか。手取り足取りレベルでご教示いただきたくお願いします。

専門家に質問してみよう