準・究極の選択

下記のようなエクセルのデータがあります。
品名の計の行の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
総計        

A 回答 (7件)

#4ですが、回答がたくさん出ているので


追加の投稿はしません。失礼しました。
    • good
    • 0

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の利用)
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/02/16 08:44

質問の意味を捉えきれているか疑問ですが・・・


質問にある表が何行目からなのか分からないので、表の最終行から処理しています。
コメントをつけていますので、不要な処理をしていたら削除して下さい。

『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
    • good
    • 0

少し時間を下さい。


ここを閉めずに少しお待ちください。
1.計を小計に
2.小計の下には太い罫線
ですね。

1.A列で"計"を検索
(個人的にはA2を読み込み
Instrb関数で検索
無ければ行数プラスしてA3へとします)

2.見つかったら"小計"と置き換え
(小を追加してセルに戻す)

3.その行の下に太い罫線を引く
(上から順番に降りてくれば
何行目かわかるのでそこでAからYに罫線)

4.最終行まで繰り返す


データが連続している、
途中に空白行が無いことを前提にします。
またはデータ数(行数)がわかるでも可

これで分かれば閉めてもらって構いませんので。
    • good
    • 0

「する意味」と「したいこと」が伝わりません。


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

この回答への補足

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

補足日時:2002/02/10 09:03
    • good
    • 0

メニューの「ツール」→「マクロ」→「新しいマクロの記録」を選択して、そのままマクロの記録を停止させずに、


実際に手動で罫線を引いてみてください。
罫線を引き終わったら記録を停止し、モジュールの内容を確認すると、コードが出来ています。範囲指定(Range)を変更すれば、罫線を引く範囲も調整されます。
    • good
    • 0

質問の表内容のスペースが詰まって、よく分かりませんね。

『_』などを使うか、全角スペースを使って再度、表を表示されたほうが考えやすいです。

疑問点としては、
>計の行
この『計』が入っているのは、B列ですか?
この行のA列を『小計』にして、『計』の文字はそのままですか?

>倉庫のデータが入っているb列の行には罫線の実線を横に引きたい
b列には全ての行について罫線を引く?または『計』のある行だけ?

>外枠と2行目の下にはすでに横の線が入っています。g列からY列にもデータが入っています
この意味は?2行目の下にある罫線と同じ罫線を全ての行に引くことですか?いわゆる升目のようにしてしまうのでしょうか。

>総計
表の『総計』はA列にあり、これが最終行でしょうか。

『各行、2行目と同じ下罫線を引いて、A、B列の罫線種は変えて強調したい』という風にも読めますが、補足をお願いします。

この回答への補足

いつも質問の仕方が悪くてすいません。
よろしくお願いします。


この『計』が入っているのは、B列ですか?
A列です。例:TR160計→小計
       TR380計→小計
A列に入っている、TR160計→小計の文字にかえて表示する
         TR380計→小計 〃

b列には全ての行について罫線を引く?
全ての行に線を引く

この意味は?2行目の下にある罫線と同じ罫線を全ての行に引くことですか?
A列には引きません。
A列に引きたいのは計の入っている行の下に罫線の太線をA列からY列まで引きたい

補足日時:2002/02/10 10:19
    • good
    • 0

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