タグ

VBAに関するkinaccoのブックマーク (8)

  • Word で履歴を export するメモ - Qiita

    背景 Word で契約書の文章の差分管理をしなければならない(相手方法務が git など使えず, Word 履歴機能しか使えない) 何回も変更された Word で, どこが変わったのか日付順でソートして確認したいが, Word の標準機能ではなぜか日付でソートというのができない 対処方法 Word マクロ(VBA)で履歴情報を csv にエクスポートして, csv で日付順にソートしてチェックする. 方法 https://stabucky.com/wp/archives/2339 https://docs.microsoft.com/en-us/office/vba/api/word.revision VBA は初めてでしたが, VBA を 10 分くらい習って以下のようなものができました. VBA で比較的簡単に履歴オブジェクトにアクセスできますね. Sub rev() ' ' rev

    Word で履歴を export するメモ - Qiita
  • Wordにおける構成要素とRange

    Word文書におけるオブジェクトの集合(Paragraphs, Sentences, Words など)と Range について解説。 プログラムのサンプルでは、検索とRangeの関係を取り上げます。 また、見出しスタイルの設定と、中央揃え・右揃えの配置の記述も含まれます。 素材として用いる sample01.txt は「走れメロス」の冒頭部分。 《このページの目次》 1. 概要 (1) 文書中での位置を知るための Start, End (2) 文書の構成要素とRangeオブジェクト (3) Start, Endに関する注意点 2. VBAマクロ △ macro02.txt 3. OLEを利用するVBScript △ vovWD02.vbs 4. JScript △ vovWD02.js 5. テキストファイルの取り込みと改行コード (1) InsertFileメソッドを利用したときの改行

  • 行高を適切に(?)調整する(Excel) - 素人がExcelVBAによる「一人働き方改革」に挑むブログ

    行高を適切に(?)調整する(Excel) 印刷時に行が切れてしまわないようにする方法を考えた。 考え方 フォントには、固有の行高がある。単位はポイント。で、Excelの行の高さ([Range].RowHeightプロパティの値)も単位はポイント。だから、次のような考え方で行けるはず。 フォントの固有の高さを求める セルの中で一行あたり何文字になるのかを求める セル内の文字数とか改行回数をもとに何行になるのかを求める 上下の余白を何ポイント取るのか決める まあ、これでよかろう。 フォントの固有の高さを求める これは、よくわからんので、使いたいフォントを指定し、使いたいフォントサイズに変えて、行の境目をダブルクリックしてみた。 たとえば、「UD デジタル 教科書体 NK-R」で「11ポイント」を指定すると、 このように、行高は15ポイントになった。まあ、これでよかろう。(もし違っていたら教えろ

    行高を適切に(?)調整する(Excel) - 素人がExcelVBAによる「一人働き方改革」に挑むブログ
  • 2次元配列の値をRangeオブジェクトに突っ込むときの配列はVariantでなくても良い(Excel) - 素人がExcelVBAによる「一人働き方改革」に挑むブログ

    2次元配列の値をRangeオブジェクトに突っ込むときの配列はVariantでなくても良い 初歩的過ぎますか? 2次元配列の値を一気にRangeオブジェクトに書き込む処理は、Variant型の変数を使う例が多かったので、全然気づいていませんでした。 実験 シートモジュールに、次のようなコードを書いてみた。 リスト1 シートモジュール Private Property Get TestArea() As Range Set TestArea = Me.Range("$D$1:$G$6") End Property Private Sub write2DimensionArray( _ ByVal targetRange As Range) With targetRange Dim rowSize As Long rowSize = .Rows.Count Dim colSize As Long

    2次元配列の値をRangeオブジェクトに突っ込むときの配列はVariantでなくても良い(Excel) - 素人がExcelVBAによる「一人働き方改革」に挑むブログ
  • オブジェクト指向でつまづく7つのポイントと処方箋 - t-hom’s diary

    こちらの記事で伊藤先生も書かれているように、この数年でVBAのクラスモジュールに関する情報が充実してきている。 これからクラスモジュールについて学習しようと考えている方も沢山(期待を込めて)いらっしゃることと思う。 そこで今回は、オブジェクト指向を学習するにあたってつまづきやすいポイントを紹介し、その処方箋としてアドバイスを書いてみようと思う。 私がオブジェクト指向でつまづきやすいポイントは以下の7つだと考える。 オブジェクト指向の目的が理解できない オブジェクト指向の悪評に惑わされる オブジェクト指向の用語がややこしすぎる オブジェクト指向の前に覚えるべきことを覚えていない オブジェクト指向の一部の特長を過大に受け止めてしまう オブジェクト指向での具体的な実装方法が分からない オブジェクト指向の活用方法が分からない これらは私自身がつまづいたポイントでもある。こうしてみると結構ある。 で

    オブジェクト指向でつまづく7つのポイントと処方箋 - t-hom’s diary
  • ○箇月後の直近の○曜日は? - 素人がExcelVBAによる「一人働き方改革」に挑むブログ

    ○箇月後の○曜日の日付を求める自作Function 「1箇月後の直近の木曜日を求める」という作業が発生した。別に、暦を見たらいいんだけれど、もし今後たくさんの日付について同じ作業をする必要が生じたらメンドウなので、ちょこちょこっと「1箇月後の直近の木曜日の日付」を返すFunctionプロシージャを作ってみた。 ただ、「1箇月後の直近の木曜日」にしか対応できないのではツマラナイので、 せめて○箇月後の○曜日ぐらいにはに対応できるようにしておこう と思い立って、ちょこちょこっと書いてみた。 考え方 VBAには、組み込み定数でvbSunday(正体は"1")~vbSaturday(正体は"7")が定められている。 ○箇月後の日付は、元の日付がtargetDateという変数に入っているとすると、 DateSerial(Year(targetDate), Month(targetDate) + ○,

    ○箇月後の直近の○曜日は? - 素人がExcelVBAによる「一人働き方改革」に挑むブログ
    kinacco
    kinacco 2017/10/04
    これは良い。多分すごく良い。職場で明日読みます。
  • 脱・初心者のために(1) - 素人がExcelVBAによる「一人働き方改革」に挑むブログ

    私が脱・初心者を自覚した瞬間 ……といっても、ある瞬間にスイッチが入ったように「今日を以て初心者を卒業します。私のことを嫌いになっても、初心者のことは嫌いにならないでください!」とか思ったわけではない。 何度も何度も、それはもう何度も何度も、Time After Time……ですよ。「ぼちぼち初心者の域はだっしたかなー」、「いやいや、こんなことも分かっていないようじゃあまだまだだな……」というのを何度も繰り返して今に至るわけです。 今回は、そのたくさんある瞬間のうちの一つ、ということでご理解ください。 「値渡し」と「参照渡し」 コレ、最初何のことだかサッパリ分からなかった。 たいていのには、 「値渡し」は、変数のコピーを呼び出した側のプロシージャに渡します。 「参照渡し」はその変数への参照を呼び出した側のプロシージャに渡します。 とかいうようなことが書いてある。 これ、最初全然意味が分か

    脱・初心者のために(1) - 素人がExcelVBAによる「一人働き方改革」に挑むブログ
  • VBA マクロの高速化のためのApplication設定をクラスモジュールにまとめる - t-hom’s diary

    今回はちょっと変わったクラスモジュールのテクニック案。 異端扱いされそうな気がするので、思いついた私自身、採用には慎重なのだけれど、アイデアとしては面白いと思ったので備忘録として公開してしまうことにした。 さて、過去にPropertyプロシージャを使った高速化テクニックというのをやった。 thom.hateblo.jp 今回も基的にはApplication設定を変更するだけなのだが、クラスモジュールを使って更に怠慢にやろうという話。 作り方 クラスモジュールを挿入し、オブジェクト名を「OneTimeSpeedBooster」に変更する。 このクラスの名前付けは超重要!! そもそも馴染みのない異端テクニックなので、何がしたいのか名前で示さないと訳が分からなくなる。 クラスに書くコードはこちら。 Private Sub Class_Initialize() With Application

    VBA マクロの高速化のためのApplication設定をクラスモジュールにまとめる - t-hom’s diary
    kinacco
    kinacco 2017/03/19
    自分は標準モジュールでやってました。 クラスのコンストラクタとデストラクタでやるのですね!これ好きです。
  • 1