- ベストアンサー
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 の様に。 教えてください。お願いします。
- rinkairyo
- お礼率0% (0/7)
- Visual Basic
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1 さんと同じような考え方ですが、もう少し厳密に。。。 1)A5 に「=A1」と入力します。 2)B5 に =IF(COLUMN(A5)<$B1-$A1+1,A5+1,"") と入力します。 3)B5 を C5:IV5 に コピー します。 4)5:5 を選択し、[セルの書式設定] - [分類(C)] - [ユーザー定義] で、[種類(T):] を「d」にします。 以上で、5列目 に、「27、28、29、30、31、1、2、3」と表示されます。 5)A4 に「=A5」と入力します。 6)B4 に =IF(B5<>"",IF(MONTH(A5)<>MONTH(B5),B5,""),"") と入力します。 7)B4 を C4:IV4 に コピー します。 8)4:4 を選択し、[セルの書式設定] - [分類(C)] - [ユーザー定義] で、[種類(T):] を「m"月"」にします。 以上で、4列目に、「5月、、、、、6月」と表示されます。 これを マクロ でするとなると >A1 2009/5/27 (開始) >B1 2009/6/3 (終了) の間の日数を i = Range("B1").Value - Range("A1").Value + 1 などとして、変数 i にでも格納し、 For j = 1 To i Cells(5, j).Value = Format(Range("A1").Value + j - 1, "d") If j = 1 Or Cells(5, j).Value = 1 Then Cells(4, j).Value = Format(Range("A1").Value + j - 1, "m月") End If Next j などとするとできますでしょうか。。。
その他の回答 (1)
- NNori
- ベストアンサー率22% (377/1669)
とりあえず考え方だけ まず 日付を必要な分埋めちゃいます。 A4に 2009/5/27 を入力 B4=A4+1 を入力 コピーして、4の行にコピー そうすると A4~Z4 とかに日付がひとつづつ増えた状態になります。 この状態で今度は A5=A4 を入力コピーして、5の行にコピー これで A5~Z5 とかに上と同じ表示になります。 行4の表示フォーマットを ユーザー定義にして、 m"月" 行5の表示フォーマットを ユーザー定義にして d とします。 これをマクロにするだけです。
関連するQ&A
- Excelで複数行を1行にするマクロについて
Excel2000で3行を繰り返し、1つの行にまとめていくマクロの書き方についてご教授ください。 例えば下記のような並びの時、 A B C D E F G H I ..... マクロを使って、 A B C D E F G H I ...... のようにしたいと考えています。
- ベストアンサー
- その他MS Office製品
- Excel のマクロを作成したい。
Excel で作成した作業計画表(テ-ブル)に下記マクロを作成し実行したいので。 当初計画表には後述のB,C,Dは存在していない。 下記マクロにてテ-ブル内に追加したセ-ルB=開始日、C=終了日、D=作業期間を自動に求めたい。 タイトルとして 第1行目コロンA=作業者名、B=開始日、C=終了日、D=作業期間、E=2011年10月31日、 F=2011年11月7月、次のコラムから1週間後の日付が設定されている(テストとしてJまで) J=2011年12月5日 第2行Aコラムには作業者=田中さん、B,C、Dを自動で求めたい。 第3行Aコラムには作業者=鈴木さん、B,C、Dを自動で求めたい。 第4行Aコラムには作業者=林さん、B,C、Dを自動で求めたい。 Excel のテ-ブルでは 第2行A=田中さん EからFに(当初はB~G)赤色で線を塗り2週間の作業とした。 第3行Aコラムには作業者=鈴木さん、FからGに赤色で線を塗り2週間の作業、 第4行Aコラムには作業者=林さん、HからJに赤色で線を塗り3週間の作業として計画した。 田中さんの作業開始日は2011年10月31日、終了日2011年11月12日、作業期間は2週間との 結果を求めたい。 下記マクロは Sub test() i = Colum(E) :Eコラムの番号 x = Colum(J) :Jコラムの番号 y = EtActivitecell.Row For c = i To x Step 1 If Adresse(Row(y), Colum(c), 4) = "D" Then Adresse(EtActivitecell.Row, EtActivitecell.Colum) = ADRESS(Colum(c), 1, 4) End If Next End Sub
- 締切済み
- その他(業務ソフトウェア)
- 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
- 締切済み
- Visual Basic
- エクセル・並び替えのマクロ
エクセルで並び替えのマクロを作ったのですが ___A ______B ______C ______D ______E ______F _____________G 1 (株)カネカ【東証1部 : 4118.T】 2 日付 __始値 _高値 _安値 _終値 _出来高 ___調整後 3 07/07 1,030 1,069 ___941 __974 30,772,000 ___974 4 07/06 1,057 1,093 1,016 1,033 26,904,000 1,033 5 07/05 1,080 1,086 1,023 1,051 26,541,000 1,051 6 07/04 1,113 1,209 1,087 1,098 36,317,000 1,098 7 07/03 1,096 1,128 1,020 1,124 23,988,000 1,124 8 07/02 1,098 1,147 1,020 1,105 28,609,000 1,105 9 07/01 1,100 1,158 1,078 1,082 17,808,000 1,082 このような表で マクロ記録開始 セルA3をクリック データ→並び替え 優先されるキー:日付・昇順 データ範囲の先頭行:タイトル行 マクロ記録終了 で、できたマクロが Sub Macro1() Range("A3").Select Range("A1:G9").Sort Key1:=Range("A3"), Order1:=xlAscending,Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal End Sub これを実行すると 1行目、2行目の(株)カネカ、日付、始値…、が8行目、9行目になってしまいます そこで、マクロの Range("A1:G9")を Range("A3:G9")に書き換えて Sub Macro2() Range("A3").Select Range("A3:G9").Sort Key1:=Range("A3"), Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal End Sub これを実行すると 日付が、07/07、07/01、07/02、07/03、07/04、07/05、07/06 の順番になってしまいます どうしたらよいのでしょう?
- ベストアンサー
- オフィス系ソフト
- エクセルにて複数セルの並び替え
こんにちは、エクセルについて教えてください。列はA~Hまで、行は1~200行ほどに値が入っています。 例えばValueが以下のようだとします。 A1 B1 C1 D1 E1 F1 G1 H1 A2 B2 C2 D2 E2 F2 G2 H2 ... これらのValueを、別のSheetに以下のように並び替えたいのですが、 A1 B1 C1 D1 E1 F1 G1 H1 A2 B2 C2 D2 E2 F2 G2 H2 A3 B3 ...と、これがA200~H200の行分まで。なのでPaste後は800行になります。どうにかマクロか何かで簡単に 出来ないかと思い、どなたかご教授いただければと思います、よろしくお願いします!
- ベストアンサー
- オフィス系ソフト
- EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか?
EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか? 下記のようにならんだDATAがあります。 A列 B列 C列 D列 E列 (1行)2002/12/17 15240 15280 15220 15220 (2行) (3行) (4行) (5行)2002/12/18 15250 15250 15210 15210 (6行) (7行) (8行) (9行)2002/12/19 15220 15310 15220 15310 (10行) (11行) (12行) (13行)2002/12/20 15220 15260 15210 15230 (14行) (15行) (16行) (17行)2002/12/24 15300 15310 15270 15310 (18行) (19行) (20行) (21行)2002/12/25 15300 15340 15300 15600 . . . . . . . . . . . . . . . . . . . . . . . と,このようにDATAは日付の横に数値が4つずつ横に並んでおりますが、この4つの数値をその4つ目の数値の真横のF列から縦に4つ並べたいのですが、一気にできるマクロがないものでしょうか?下記のようにです。 A列 B列 C列 D列 E列 F列 2002/12/17 15240 15280 15220 15220 2002/12/18 15250 15250 15210 15210 2002/12/19 15220 15310 15220 15310 . . . といった感じに一気にマクロで処理してしまいたいのです。DATAはかなりの行数あり、すべて3行の間隔があります。日付の横に4つの数値が規則的に並んでいるというものです。何回でもマクロボタン一発で4つの横に並んだ数値のみを縦に並べた4つの数値にしたいのです。つたない説明で大変申し訳ありませんが、どなたかわかる方お教えくださいませ。
- ベストアンサー
- オフィス系ソフト
- エクセル マクロでセルを自動移動
例1のようになっているエクセル表があります。 データは右方向、下方向へ増えます。 Cの列以降は4つ単位でしかデータは増えません。 それを例2の表のように列A,Bのデータはそのままに Cの列以降の4つのセルを区切りに下の行に移動して、 空白の列まで言ったらA2の行以降を最後の行まで繰り返しするという マクロを書くことは可能でしょうか。 出来ましたらそのマクロを教えてください。 例1 A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 例2 A1 B1 C1 D1 E1 F1 A1 B1 G1 H1 I1 J1 A1 B1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 A2 B2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 A3 B3 G3 H3 I3 J3 A3 B3 K3 L3 M3 N3
- ベストアンサー
- オフィス系ソフト
- エクセルで日付を付けるマクロ
エクセルで記入のある行のみに最後の列に日付を加えたいのですが、例えば1~10までのAからEまで記入されていたとするとF1~F10までに日付が入るようにしたいのですが、できればこのマクロが可能でしたらどなたかご教授下さい。 またスペースのための未記入行をまとめて削除する方法(できればマクロ)ももしご存知の方お願い致します。
- ベストアンサー
- オフィス系ソフト
- テキストをExcel2000に貼り付け
.txtを参照してファイル内容を、マクロで Excel2000に貼り付けたいと考えています。 先頭の1行は決まっていて2行目からが 対象になります(コロン区切りのファイルです) コロンは削除してA~Jまでの文字を ExcelのA~Jのセルに貼り付ける 例).txtの記述 START :A :B :C :D :E :F :G :H :I :J :A :B :C :D :E :F :G :H :I :J :A :B :C :D :E :F :G :H :I :J ExcelのA1セルから最大20000行まで対応したいです。 どうかご教授願います。
- ベストアンサー
- Visual Basic
- Excelでマクロを使用した削除に関して
マクロ初心者です。 Excelにて、以下のような表データがあるとします。 A列 B列 C列 D列 E列 … 1行 51 50 52 51 2行 50 a b c d 3行 51 e f g h 4行 52 i j k l この表の中で、A列と1行目の値が同じになる交点となるセルの値"以外"を 削除して以下のように表示させたいのですが、 その方法がわかりません。 A列 B列 C列 D列 E列 … 1行 51 50 52 51 2行 50 b 3行 51 e h 4行 52 k 単純な行削除・列削除ではないため、 頓挫しています。お知恵を拝借したく、よろしくおねがいします。
- ベストアンサー
- その他(プログラミング・開発)
補足
>i = Range("B1").Value - Range("A1").Value + 1 > >などとして、変数 i にでも格納し、 > >For j = 1 To i > Cells(5, j).Value = Format(Range("A1").Value + j - 1, "d") > If j = 1 Or Cells(5, j).Value = 1 Then > Cells(4, j).Value = Format(Range("A1").Value + j - 1, "m月") > End If >Next j 回答ありがとうございます。 これだと無限ループしてしまいます。 どうしてでしょう?