• 締切済み

エクセルで複数のセルに一本の斜線を引く場合

http://okwave.jp/qa/q4821391.html の質問と全く同じことがやりたいのですが、回答4の例題のマクロをコピーしても 何も動作しません。エラーも出ません。 ちなみに、他のサンプルはコピーするとちゃんと動作します。 お礼の欄にはうまくいったと書かれていますが・・・ 原因がわかりません。どなたか」試していただけないでしょうか。

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.5

正直なところ、 > ご年配の方にやって頂くため、できるだけ簡単にと思い それなら、印刷したモノに定規とボールペンで線を引かせるのが一番早いです。 何より、作成者であるあなた自身が > 例題マクロの内容も理解せず、ただコピーしていました。 というレベルなら、なおさら複雑なマクロはオススメしません。 今後、コレのメンテナンスが必要な事態が来た時に対応できないからです。 (例示のマクロは決して複雑とは思いませんけどね。) さて。 マクロ中の  '表の範囲を指定  Set myRng = ActiveSheet.Range("A1:E20") この部分で「表の範囲を動的に指定」してやれば事足りるのは無いかと思います。 最終行 > 例えば最後が15行だとすると、E16の右上からA16の左下まで斜線を入れたいのです。 を「判断できる列」がA列(エクセルにおける1列目)だとすると、 Sub Sample() Dim myRng As Range Dim myCol As Range Dim myTmp As Object Dim myCnt As Integer Dim myRow As Long '追加 '最終行を調査(最終行+1) myRow = Cells(Rows.Count, 1).End(xlUp).Row + 1    '追加 '表の範囲を指定 Set myRng = ActiveSheet.Range("A1:E" & myRow)    '変更   (以下同文につき省略) ですが、 > 最終行1行だけに斜線をいれる事になっています。 と言うことなので、 最終行を判断する列(この場合はA列)に「式も入っていないのだとすると」 ごく単純に Sub Sample2() Dim mytemp As Object Dim myRow As Long     '最終行を調査し、線を引く行を決める     myRow = Cells(Rows.Count, 1).End(xlUp).Row + 1     '古い斜線を消す     For Each myTmp In ActiveSheet.Shapes         If myTmp.Name = "myLine" Then myTmp.Delete     Next myTmp     '対象行の“次の行”のA列の左上=対象範囲の左下 から     '対象行のE列の“次の列”の左上=対象範囲の右上 まで     '右上がりの黒い斜線を引き、名前を付ける     With ActiveSheet.Shapes.AddLine( _         Cells(myRow, "A").Offset(1, 0).Left, _         Cells(myRow, "A").Offset(1, 0).Top, _         Cells(myRow, "E").Offset(0, 1).Left, _         Cells(myRow, "E").Offset(0, 1).Top)         .Line.ForeColor.RGB = RGB(0, 0, 0)         .Name = "myLine"     End With End Sub これで対応可能と思われます。 線を引きたい列が「A:E」ではない場合は、ご自身の環境に合わせて書き換えればOK。 ただし、「データの最終行」の下に例えば「合計」などの余分な行があるのであれば もう少し工夫が必要です。

noname#203218
noname#203218
回答No.4

添付マクロの変数myCntはセルの空白をカウントしているのでは無く、セルA1~A20までのVLOOKUP関数のエラーセル数をカウントしています。 質問者さんは、A列に数式は入力していないのでA1~A20のセルにエラーが発生していないのではありませんか? セルの空白をカウントするように変更すれば添付ファイルマクロで可能だと思います。 If IsError(myTmp.Value) Then myCnt = myCnt + 1 上記部分を下記に変更 If myTmp.Value = Empty Then myCnt = myCnt + 1

ohtani63
質問者

お礼

ありがとうございました。 まさにその通り、セルに数字だけを入れていました。 例題マクロの内容も理解せず、ただコピーしていました。 ご回答の部分変更してちゃんと動作しました。 もしよければもうひとつ教えて下さい。 うちの会社の伝票は最終行1行だけに斜線をいれる事になっています。 例えば最後が15行だとすると、E16の右上からA16の左下まで斜線を入れたいのです。 もし、簡単な書換えで出来るものなら、ご教授お願いいたします。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

少しでもわかりやすくなればと思い、添付です。 ついでに、参考URLもどうぞ。 http://pc.nikkeibp.co.jp/article/technique/20090325/1013596/?rt=nocnt

ohtani63
質問者

お礼

ご回答ありがとうございます。 手動で引く方法はわかっているのですが、ご年配の方にやって頂くため、できるだけ簡単にと思い、マクロで何とかならないものかと考えております。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

リンク先のマクロとは全く関係なく「全手動で」引く方法として・・ Altキーを押したままで始点・終点を指定してやると 「それぞれ最も近いセルの角にピッタリ合う」ように調整してくれます。 ・・・言葉で説明するとちょっとややこしいのですが(笑)。 変にマクロを使うより手軽ですよ。

  • chie65535
  • ベストアンサー率43% (8522/19371)
回答No.1

回答4のは、空欄になってるセルが「想定された条件に一致してないと、何もしないで終わる」ので、そのままコピーして動作させても、何も起きません。 ちゃんと「上の方には入力済みのセルがあって、下の方には未入力の空欄があって、シートの再計算イベントに、下の方のルーチンが関連付け(つまり、自動で呼ばれる設定に)されている必要があります。 「表を○○した時に、自動で呼ばれる関数を作る方法」は、理解していますか?

ohtani63
質問者

お礼

ご回答ありがとうございます。 例題のマクロの内容は難しくて理解出来ませんでしたので、ただコピーしていただけでした。

関連するQ&A

  • エクセル 複数行にまたがっているデータを一つの行3

    エクセル 複数行にまたがっているデータを一つの行にまとめ(応用) 以前にも同じような質問で1商品複数行のデータを1行にまとめるマクロ をつくって頂いたのですが、(http://okwave.jp/qa/q8191364.html) これが、たまたま、1商品1行のデータがありまして、まとめるとエラーがでてしまいます。 (エラーがでるブック http://yahoo.jp/box/aiXHto) →成分の箇所だけまとめたいのが目的。 またかなり無理な作業を承知の上でのマクロなんですが、 下記のサンプルデータで http://yahoo.jp/box/SUs3B3 前のように複数行を1行にまとめたいのですが、成分の箇所がちょっと複雑で サンプルデータの黄色のA成分、B成分、C成分があるのですが、 これを一つのセルにsheet2のようにまとめたいのですが、 VBAで上記の処理を出来る方法がありますでしょうか。  またtom04さんいつもありがとうございます。

  • Excelマクロでセルに入力した場合のUndo

    http://okwave.jp/qa/q6632303.html で質問させていただいた者です。 「a」キーを押すだけで「外勤」と入力させるとができるようになりました。 しかし、Undoが効かない状態です。 マクロを使ってセルに文字を入れている場合は、Undoできないのでしょうか? Undoができる方法があれば、教えて下さい。 OSはWinXPとVista、Excelは2000と2003です。

  • エクセルマクロ:複数シートの同じセル範囲を一覧表示

    複数のシートの同じセル範囲(たとえば、複数シートのB5~B21)を一つのシートにまとめたいです。 ほぼ同一条件の質問が↓にありましたが、やりたい事が少しだけ違います。 http://webcache.googleusercontent.com/search?q=cache:xTW6Bh9ySsIJ:okwave.jp/qa/q4600652.html+&cd=2&hl=ja&ct=clnk&gl=jp 【上記URLの回答内容】 同一ブック内にシートを追加し、指定範囲をA1基点に下方向に連続コピー 【今回知りたい内容】 同一ブック内に存在しているシート(名前"サマリ")に、指定範囲をE4を基点に右方向に連続コピー。  (情報を持ってきたいシートは表示したい順に並んでいます)  マクロ初心者です。 どなたかお知恵を貸して下さい。お願い致します。

  • 複数のブックを新しいブSheet1にまとめたい

    以下のような回答を見つけましたが、制約があります。 http://okwave.jp/qa/q4225063.html 1.シートの見出しが各自違う 2.csvファイルである 2はマクロ中の拡張子をかえれば対応できると思うのですが、1はcsvに適応できるマクロなどあるのでしょうか。一括で複数のシート名を変えるマクロ教えていただけますか。

  • 回答にお礼が書けない!どうしてですか!

    さっき質問したことですが、 http://okwave.jp/qa/q7678923.html 回答にお礼が書けない状態になっています。 上記の質問に対して、azuki-7という方がら回答が寄せられましたが、 お礼の欄に書き込もうとしても、全然出来ません。 どうやってもお礼が書き込めません。 何か、画期的な方法を教えて下さい! お願いします!

  • おススメの旅行会社からツアーを選ぶ

    普段旅行に行く時は 日程か行き先を考えてから具体的なツアーとか探して 行ってましたが 最近沢山のベストアンサーの回答者さんが 口を揃えておススメしている旅行会社が気になって そんな素晴らしい会社なら 利用してみたいかなと思いました http://okwave.jp/qa/q6492696.html http://okwave.jp/qa/q6480754.html http://okwave.jp/qa/q6478337.html http://okwave.jp/qa/q6445118.html http://okwave.jp/qa/q6414360.html http://okwave.jp/qa/q6398536.html http://okwave.jp/qa/q6386505.html http://okwave.jp/qa/q6385152.html http://okwave.jp/qa/q6360225.html http://okwave.jp/qa/q6360170.html http://okwave.jp/qa/q6218657.html http://okwave.jp/qa/q6217930.html http://okwave.jp/qa/q6217884.html それで 旅行会社を先に決めてプラン探したことがないので 旅行会社を先に決めてる方って多いのかとか どんないいことがあるとか どんなことに気をつける必要があるとか よく分かりません あったら教えて下さい それから 他にも安くておススメの旅行会社があったら そちらも教えて下さい 勝手なんですが 2月5日以前に登録して 今迄に回答かお礼を1回以上したことある方の 御回答を御願いします ベストアンサー率とお礼率は気にしません

  • 質問の仕方への質問

    本日以下の質問を投稿しました。 http://okwave.jp/qa3141867.html しかし回答者の方にこの質問は違反ではないかという指摘を受けました。 けれどもお礼欄に書いてあるように、 質問を書く前に http://okwave.jp/qa3121143.html のQ&Aを参考にしました。 このサイトではどちらが正しいやり方なのか、 教えていただけると助かります。

  • エクセル マクロ ソルバ 中止(T)を選択したい

    エクセル2007のマクロを修正しています。 ソルバで、オプションの制限時間を設定しており、 制限時間に達した時に、「試行状況の表示」が現れるため、 マクロが途中で停止してしまい、困っております。 「試行状況の表示」が現れる時に、中止(T)を選択できれば、 目的のマクロになります。いくつかの方法を試したのですが、 うまくマクロが動作しません。 【試した事】  (1)Dummy Macro() → 「値の更新」が表示されて止まる。  参考 http://okwave.jp/qa/q2630207.html  (2)Function → 「値の更新」が表示されて止まる。  参考 http://msdn.microsoft.com/ja-jp/library/office/ff197237.aspx  (3)Application Display Alerts → 「試行状況の表示」が表示されて止まる。  参考 http://okwave.jp/qa/q2630207.html コードを記述しないと、非常に回答し辛い事は、承知しております。 ただ、セキュリティの問題で、生コードは持ち出せません。また、 現在、マクロを勉強中のため、簡易的に書く技術が無く申し訳ございません。 やりたい内容や課題になっている所は、gucchi-you殿の質問と同様だと思います。 http://okwave.jp/qa/q2630207.html この質問は、解決せずに終了しております。 2週間試行錯誤しましたが、うまくいかずに投稿させて頂きました。 もし、ご回答頂ければ、非常にありがたいです。 お知恵をお貸し下さい。

  • 回答にお礼が書けないことがあります

    以前にこちらで質問したことですが、 http://okwave.jp/qa/q7652650.html OKWaveで質問をして、その回答に対してお礼を書き込もうとしても、 お礼を書くことが不可能なことがあります。 具体的な症状は、お礼を書こうとしてお礼の欄をクリックすると、 画面が一番上に瞬間的にスクロールされて、お礼の欄が見えなくなってしまいます。 あらかじめメモ帳などにお礼を書いて、コピペでお礼を書き込もうとしても、不可能です。 画面がスクロールされて、お礼の欄が、画面の下に消えてしまうのですから。 どうやってもお礼を書き込めない、という状態になることがときどきあるのです。 誰か、助けて下さい! お礼の書き込み方を教えて下さい!

  • 指定した回数複数のセルの値を貼付けて印刷するマクロ

    以前 http://okwave.jp/qa/q7606899.html にて ご教授いただいたマクロについてなのですが、 複数のセルの値を、別のシートに貼り付けて印刷する事になり、 皆様に再度ご教授いただきたくよろしくお願い致します。 〇今回の質問 別のシート「印刷用シート」の左側の表に、 Sheet1のA2:B2 をコピーしたものを貼り付けて、 右側の表にSheet1のD2:E2 をコピーしたものを貼り付けて印刷。 これを3列目、4列目と繰り返して印刷したい(添付ファイルもご参照下さい)

専門家に質問してみよう