エクセル2000マクロ操作について

このQ&Aのポイント
  • エクセル2000のマクロ操作について教えてください。
  • エクセル2000で品名の計の行のa列文字を小計の文字に変換して、小計の文字の下に罫線の太線を横に引きたいです。
  • エクセル2000でb列の行には罫線の実線を横に引きたいです。c列には倉庫のコード、d列からY列までデータが入っています。
回答を見る
  • ベストアンサー

エクセル2000マクロ操作について

下記のようなエクセルのデータがあります。 品名の計の行のa列文字を小計の文字に直して小計の文字の下の行に 罫線の太線を横に引きたい。倉庫のデータが入っているb列の行には罫線の実線を横に 引きたい。c列には倉庫のコード、d列からY列までデータが入っています。 マクロではどうやって作成すれば良いですか教えてください。 尚、外枠と2行目の下にはすでに横の線が入っています。g列からY列にもデータ が入っています。 a列      b列  c列  d列  e列   f列   品名     倉庫 TR160 セ新港  870 150 TR160 セ門司van 001 TR160 セ宇都宮 A91 800 TR160 セ東大阪 533 575 150 TR160 計 575 1100 TR380 セ新港 870 TR380 セ宇都宮 A91  25 TR380 セ東扇島 386 1200 TR380 セ東大阪 533 2050 TR380 計 3275 総計        

noname#72697
noname#72697

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

  • ベストアンサー
回答No.7

#4ですが、回答がたくさん出ているので 追加の投稿はしません。失礼しました。

その他の回答 (6)

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

A列の行1~9行目まで、任意の数字を入力し、10行目に「183f計」を入れて、モデル的にテストしました。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Worksheets("sheet1").Range("a1:a100").Find("計").Select Selection = "合計" ’小計か a = Selection.Row Range(Cells(a, 1), Cells(a, 25)).Select With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThick End With End Sub を実行すると「計」は「合計」となり、そのセルの底の罫線は AからY列まで太線になりました。 そのセルの値が「計」そのものでなくても、「計」の文字を含むとFindメソッドは見付けてくれるようです。 「計」のある行がA列に複数有る時(本件も)の処理はFindの解説 やヘルプで調べてください。 合計行を入れるときは Selection.offset(1,0)="合計" を最後の「計」の発見の後に使って出来るでしょう。(Offsetの利用)

noname#72697
質問者

お礼

実際やってみます。ありがとうございました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.5

質問の意味を捉えきれているか疑問ですが・・・ 質問にある表が何行目からなのか分からないので、表の最終行から処理しています。 コメントをつけていますので、不要な処理をしていたら削除して下さい。 『QNo214254.Excel95とExcel2000でのマクロでの動作違いについて』と同じような処理ですか。 『QNo214254』のコードも短く書き換えられそうですね。 Sub 小計の罫線()   Dim rw As Long '行カウンタ   For rw = Range("A65536").End(xlUp).Row - 1 To 1 Step -1     '*** B列に下線を引く ***     If Range("A" & rw) <> "" And Range("A" & rw) <> "品名" Then       Range("B" & rw).Borders(xlEdgeBottom).Weight = xlThin     End If     '*** 小計の処理 ***     If InStr(Range("A" & rw), "計") > 0 Then       '*** 小計を書く ***       With Range("A" & rw)         .Value = "小計"         .HorizontalAlignment = xlCenter       End With       '*** 小計がある行に下線(太線)を引く ***       With Range("A" & rw & ":Y" & rw).Borders(xlEdgeBottom)         .LineStyle = xlContinuous         .Weight = xlThick       End With     End If   Next End Sub

回答No.4

少し時間を下さい。 ここを閉めずに少しお待ちください。 1.計を小計に 2.小計の下には太い罫線 ですね。 1.A列で"計"を検索 (個人的にはA2を読み込み Instrb関数で検索 無ければ行数プラスしてA3へとします) 2.見つかったら"小計"と置き換え (小を追加してセルに戻す) 3.その行の下に太い罫線を引く (上から順番に降りてくれば 何行目かわかるのでそこでAからYに罫線) 4.最終行まで繰り返す データが連続している、 途中に空白行が無いことを前提にします。 またはデータ数(行数)がわかるでも可 これで分かれば閉めてもらって構いませんので。

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

「する意味」と「したいこと」が伝わりません。 私の理解できた程度からすると、なぜコンなこと程度で マクロを使うのか、手動でやれば良いじゃないかと思いました。実はなにか面倒なことが潜んでいるのでしょうが それが読めません。

noname#72697
質問者

補足

質問の仕方が悪くてすいません。 なぜマクロを使うかと言うと、列はあらかじめ固定されていますが、 行の位置が変わってきますので、合計されている行の位置は固定でありません。 結果がその都度変わるということです。

回答No.2

メニューの「ツール」→「マクロ」→「新しいマクロの記録」を選択して、そのままマクロの記録を停止させずに、 実際に手動で罫線を引いてみてください。 罫線を引き終わったら記録を停止し、モジュールの内容を確認すると、コードが出来ています。範囲指定(Range)を変更すれば、罫線を引く範囲も調整されます。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

質問の表内容のスペースが詰まって、よく分かりませんね。『_』などを使うか、全角スペースを使って再度、表を表示されたほうが考えやすいです。 疑問点としては、 >計の行 この『計』が入っているのは、B列ですか? この行のA列を『小計』にして、『計』の文字はそのままですか? >倉庫のデータが入っているb列の行には罫線の実線を横に引きたい b列には全ての行について罫線を引く?または『計』のある行だけ? >外枠と2行目の下にはすでに横の線が入っています。g列からY列にもデータが入っています この意味は?2行目の下にある罫線と同じ罫線を全ての行に引くことですか?いわゆる升目のようにしてしまうのでしょうか。 >総計 表の『総計』はA列にあり、これが最終行でしょうか。 『各行、2行目と同じ下罫線を引いて、A、B列の罫線種は変えて強調したい』という風にも読めますが、補足をお願いします。

noname#72697
質問者

補足

いつも質問の仕方が悪くてすいません。 よろしくお願いします。 この『計』が入っているのは、B列ですか? A列です。例:TR160計→小計        TR380計→小計 A列に入っている、TR160計→小計の文字にかえて表示する          TR380計→小計 〃 b列には全ての行について罫線を引く? 全ての行に線を引く この意味は?2行目の下にある罫線と同じ罫線を全ての行に引くことですか? A列には引きません。 A列に引きたいのは計の入っている行の下に罫線の太線をA列からY列まで引きたい

関連するQ&A

  • excel2000マクロ記述方法

    抽出条件方法のマクロ記述 1つのファイルのシートの中にデータがあります。 例ファイル名a.xlsシート名マスター     B列 C列   D列    E列 項目名 倉庫  翻訳  ソート  非表示項目     A057 レオナ工場  1     A870 セ新港    2    Y     A887 セ日向    3 もう1つのファイル 例ファイル名B.xlsシート名WORK     A列   B列   c列    d列    E列    連結コード  品名  倉庫 出荷1  加工1  AA 0G120 0G120  A870 0 0 0 AA 0H120 0H120  A057 0 0 0 AA 0S0100 0S010  A887 0 0 0 抽出条件方法 シート名WORKのデータの中のC列と、シート名マスターのB列の倉庫を参照して 非表示項目のYが入っていない、倉庫と同じデータをシート名WORKのデータを抽出したい 場合のマクロ記述の方法を教えてください。よろしくお願いします。 (抽出表示方法) AA 0H120 0H120  A057 0 0 0 AA 0S0100 0S010  A887 0 0 0     

  • エクセルのマクロで罫線を引くには

    http://okwave.jp/qa4965370.htmlで質問させていただいた内容の発展です A列にデータが入っているとします たとえばA8:A50までとします(変動します) A列の最終行50行目を取得したら、 S~U列8行目から、S~U列の、A列で取得した最終行目まで罫線を引きたいのです (開始が8行目は決定しています) 罫線の設定はこちらで組めるので、そこまでの例を出していただきたいのですが…… S列のみだと、offsetで簡単にできたのですが、複数列にわたるとむずかしいでしょうか? 暇な時にでも回答お願いします

  • Excelの集計表で固定していない小計があり、計算結果を上位の小計行に入れたい

    エクセル2K使用で300行程度の表があり、2行目まではタイトル行です。 品名L列 個数M列 単位N列 単価O列 金額P列 備考Q列← 2行目 完成品 1 組 (小計の計)(総合計) ← 3行目 小計   2   口  (O5:O8) (M*O)     ← 4行目 品名A  2   個 10 20 ← 5行目 品名B  3   本 10 30      ← 6行目 品名C  2   個 5 10      ← 7行目 品名・  ・ ・ ・ 20      ← 8行目 品名・  ・ ・ ・ 20      ← 9行目 小計 (O :O ) (M*O) ←・行目 品名・  ・ ・ ・ ・      ←・行目 品名・  ・   ・ ・ ・      ←・行目 品名・  ・   ・ ・ ・      ←・行目 品名・  ・   ・ ・ ・      ←・行目 ・ ・  ・   ・ ・ ・      ←・行目 ・ ・  ・   ・ ・ ・      ←・行目 合計            (小計の計) L列の一番上の小計は固定です、2ツ目以降の小計は固定していません。 P列の金額を上位の小計列の単価に入力して再計算したい 合計はP列(表の最終行)の合計金額欄に表示したい、3行目完成品単価は合計 金額の(小計の計)と同じ金額です、3行目を見積書に転記したいと思っています。 集計表には空白セルが存在します。 宜しくお願いします。

  • EXCEL操作について教えてください!

    1.B3/B2*100の結果をB4に出力するのですが、「0であれば0と表示(0.0ではなくて)(文字列ではなくあくまで数値として表示)」「マイナスであればAと表示」「100であればCと表示」「DIV/0!であればSと表示」「それ以外であれば小数点第2位を四捨五入して第1位まで表示」という条件はIF関数とかISERROR関数とか使ってどう書けばよいでしょうか? とてもややこしく感じて答えが出ません。お助け下さい。 2.また別の作業なのですが、例えばA列からC列に順番に大分類、中分類、小分類と項目を決め、数値を集計してあるような場合に、小分類が多い為に大分類が用紙3枚くらいに渡るとします。1ページ20行の設定で、ある1つの大分類内の小分類が合計54行ある場合などです。 普通このような場合、A列の1行目から54目までに、外枠にのみ罫線を引くと思いますが、そうしますと実際に印刷すると1ページの最後の行、2行目の最後の行に罫線が無い不自然な結果となってしまいます。 緊急避難的に、見た目不自然にならないよう途中に罫線を入れることは可能ですが、行の追加や削除があった場合、そのたびに罫線を引きなおさなければいけません。 改ページになるところは必ず罫線で閉じる設定が出来る便利な方法はありませんか?

  • エクセルのマクロで

    こんにちは、お願いします。 エクセルで小計を自動計算させたいのですが・・・ 同じ日付のデータがいくつか入力されていて その日付ごとの小計を列で出したいのです。  日付    値  小計 2002/9/1  123 2002/9/1  456   579 2002/9/2  789 2002/9/2  321  1100 という感じで・・・ このとき小計を出すセルへカーソルを置き、日付を入力するか、またはその行と同じ日付になる小計を出す、 関数では出来ないですよね? 関数式ではできなとすると、マクロが作成できるでしょうか? ご存知の方がいらっしゃいましたら、是非教えてください。 宜しくお願いします。   

  • 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列目にデータ名が入力されていてその個数が可変である場合(小計は末尾ではありません)小計行の1列目から数式をいれたいのですが、行数が固定でないため小計と書かれたセルの行数を取得したいのですが、わかりません。いい方法をお願いします。    A B C D データ aa bb cc 小計 ・ ・

  • 【エクセル】横方向へ複数行の数式をコピー

    こんばんは^^ ちょっとエクセルで苦戦してる作業があるので何か良い方法があったら教えてください。   a    b     c    d    e(列) ------------------ 1| 2      3      3       2     1 2| 2      4       1      3      2 ・ ・ 9| sum  c9/a9  sum   b9*c9  b9+d9 (小計の行) 10| 2     3     3     2     1 ・ ・ ・ 14|  2      1      2      2     5 15| sum ・・・・      (小計の行) ・ ・ ・ 上記のようなレイアウトにしたとします。 1.小計行がたくさんあります。 2.それぞれの小計で合計する行数が違います。 3.横方向にsumを手軽にコピーしたいけど、列が多く、ところどころに関数が入っているので、無闇にドラッグしたりできません。 今は、例えば9行の小計を1つsumを使った後、関数が入っていない空白セルのみをctrlキーを駆使して1つ1つクリック、ペースト そして、次の小計行へ行き同じ作業を繰り返してます。 ただ、これだと横にも縦にも長いデータが入ってるので労力使いすぎます(^^; フィルタをかけて「空白以外」にして、横方向にsumをドラッグが出来たら良いなーって思ったんですが、フィルタって列にかけられないですよね? 何か良い方法ってありますか?

  • エクセルマクロでデータの検索と転記方法

    エクセル2000です。 sheetAの 10行~165行に表Aがあります。 途中に、空白行や小計行もかなりあります。 C列のコード(文字列、数値両方あります)をキーにして、SheetBの4行目から91行目までの表B(A列にコードがあります)のB列の数値を、sheetAの10行~170行のD列に転記したいのです。sheetAの表の小計行のC列は空白です。SheetBの表Bのコードは、sheetAの表Aのコードの一部しかありません。ですから、sheetAの表AのコードがSheetBの表Bになかったらそこは何も転記しません。 わかりづらい説明かと思いますが、マクロの記述をお教えいただければ幸いです。

  • エクセルのマクロについてです

    あるソフトから出力したテキストデータを エクセルに取り込んで入庫台帳をつくっています。 A列~I列まで項目があり 1行目に項目名があります A2 日付 B2 購入先 C2品名 D2 包装の数 E2~G2 今回関係ない項目 H2 購入金額 このデータから 「同じ品物を複数の購入先から買っている 場合 そのデータを知りたい」 のが目的です まずH列に Range(Cells(2, 9), Cells(Cells(65536, 1).End(xlUp).Row, 9)).Formula = "=COUNTIF($C$2:" & Range("A65536").End(xlUp).Address & ",C2)" といれてC列の中に品名自身が何個あるかを H列に表示させました フィルタをH列でかけて「2以上」を表示させるところまでなんとかできたのですが それから先をどうしたらいいか 御教授いただけますか?  

専門家に質問してみよう