Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
入力があるセルのしたにオートシェイプを引く
投稿日時: 22/12/05 01:51:46
投稿者: SURT

請求書を作成するにあたり
10行目のA〜G列に明細を入力します
そのとき、空欄でないセルの下にオートシェイプで0.5oの線を引くにはどうしたらよいでしょうか?
また、クリアボタンで、明細とその線を消去したいです
  
用紙の範囲をこえてしまったら、次ページになるように設定しているので
固定で何行目まで、といったことはわかりません
  
なぜこのような面倒なことをするかというと
規定の線では太すぎることと、点線(一番細い線)ではプリンタの都合上
印字されないからです

回答
投稿日時: 22/12/05 09:39:40
投稿者: WinArrow

通常(デフォルト)の罫線では、太すぎる
ということでしょうか?
罫線の下だけ太さを変更する方法では、ダメなんですか?

投稿日時: 22/12/06 17:22:25
投稿者: SURT

”なし”の下の線が一番細いですがそれでも太すぎます
ネットに書いてあるように点線にすると、レーザープリンタの600DPIではまったく印字されません
 
オートシェイプで0.5oと書きましたが0.5PTの間違いですした
すみません

回答
投稿日時: 22/12/06 18:05:26
投稿者: simple

https://www.moug.net/faq/kiyaku.html
> 禁止事項
> コード制作依頼
> 「●●●を実行するようなマクロを作りたいのですが」「●●●をする方法を教えてください」といった、
> コード制作依頼ともとれるような質問はおやめください。

ご自分がどこまでトライしたかも示さずに、制作依頼するのはやめましょう。

回答
投稿日時: 22/12/06 18:56:08
投稿者: MMYS

下記は、どうなっているのですか。
https://www.moug.net/faq/viewtopic.php?t=81717
 
 
回答してくれた方に、お礼ぐらい言うのがマナーだと思いますが。
 
 
なお、質問のヒント。Rangeオブジェクトには Top,Left,Hight,Width プロパティがあります。
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.top
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.left
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.hight
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.width
 
始点・終点はポイント単位です。
https://learn.microsoft.com/ja-jp/office/vba/api/excel.shapes.addconnector
 
 

回答
投稿日時: 22/12/07 11:57:50
投稿者: Suzu

引用:
規定の線では太すぎることと、点線(一番細い線)ではプリンタの都合上印字されないからです

引用:
ネットに書いてあるように点線にすると、レーザープリンタの600DPIではまったく印字されません

 
・太さを変えるのではなく、Excel 上で、罫線の色 を変える
・プリンターの画質を変えてみる
・プリンターの詳細設定に
  「プリンタードライバーの解像度」「破線の細かさ」が有ればそれらをいじってみる
・プリンターのドライバーを最新にする
・プリンターの色の管理 から プロファイルを変更してみる
 
あたりを行って 対応できませんでしょうか。
 
 
Shape 使って 罫線を引くのはそんな難しくないです。
でも、入力ユーザーがそのShape を配置してある状態のセルの値を編集する場合
マウスを使ってセル選択するのであれば、セルではなくShapeの選択もあり得て
緻密なマウス操作を求められるので面倒ですよ。

回答
投稿日時: 22/12/08 11:18:58
投稿者: hatena
投稿者のウェブサイトに移動

プリンターの性能に依存しそうですね。当方のプリンターでは ”なし”の下の線でデフォルトの太さより細い線で印字できました。Suzuさんの回答のプリンターの設定をいじってみても改善されないようなら、Shapeを使うことになりますが、ユーザーがShapeを選択するのを防ぐために下記のように設定しておくといいでしょう。
 
標準モジュールに下記のマクロを作成しておきます。

Sub 直線_Click()
    ActiveSheet.Shapes(Application.Caller).TopLeftCell.Select
End Sub

 
Shapeに上記のマクロを登録する。
 
これで、Shapeをクリックしてもセルが選択されます。

トピックに返信