前提・実現したいこと
Rnageっぽいクラスを作り書式や値のコピーに
対応させたい
--以降「っぽい」は省略--
理由(蛇足)
Excel VBA で帳票のシステムを作成していて
大体出来上がったところで
上司「クリップボード(Excelの機能で履歴として見れる)に変なもの(システムで行のコピーなどをした履歴)が出ていて邪魔だから出ないようにして」っと言われてしまい
Copyコマンドが使えなくなってしまいました。
今後もCopyコマンドが使えなさそうなので
疑似的なRangeっぽいクラス等を作りたいです
発生している問題
とりあえずRangeはCellの塊として考えて
作ろうとしたのですが
「Range(1,4)」の様に使えるように
単純にRangeはCellの配列を返すようにしようとしたところで
Range.count等のRangeのプロパティーが
使えないことに気づきました
Itemプロパティーを作り
「Range.Item(1,4)」の様にしようかと思ったのですが
Rangeの下層にあるクラスも全く同じ様になってしまい
Itemまみれになってしまうので
出来ることなら避けたいです。
何か手段はないでしょうか?
あがいたけどダメだった策
「Range」は上位階層を作る予定がないので出来ないがそれ以下であれば
上位のオブジェクトのプロパティを使って
vba
1'使う時 2~~~~略~~~~ 3set MR as MyRng 4 5print MR.Item(1,4).Borders(xlEdgeLeft).Weight 6 7'MyRangeクラスの中 8private Cell__ as MyCell 9~~~~略~~~~ 10property Get Item(Byval RowIndex,byval ColumnIndex)as MyCell 11 12 Item=Cell__(RowIndex,ColumnIndex) 13End Property 14 15'MyCellクラスの中 16~~~~略~~~~ 17Property Get Borders_() As MyBorders 18 Borders_ = Borders__ 19End Property 20 21Property Get Borders_(byval Index as XlBordersIndex) As MyBorder 22 BorderS_ = Borders__.Item(Index) 23End Property 24
みたいな感じで引数(インデクス)の有り無しで返すオブジェクトが
変更出来たらなぁ...
っと思ったのですがうまく行きませんでした.....。
補足情報(FW/ツールのバージョンなど)
Excel 2013以降
Win10 64bit Home と Pro
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/17 23:21