ツール3件「INIファイル , RefEdit , アイコンロード」

エクステンションの作成、共用ライブラリ
返信する
K.Tsunoda
記事: 71
登録日時: 11月 2, 2008, 6:44 pm
連絡する:

ツール3件「INIファイル , RefEdit , アイコンロード」

投稿記事 by K.Tsunoda »

とりあえず、汎用化できたツールを3件紹介します。
記事上にコードを載せていますが、Calc ドキュメントとしてもダウンロードできます。

(1) INI ファイル操作関数 ( Ver 2.2 , 2009/ 7/ 22 )
http://blog.livedoor.jp/addinbox/archives/51216559.html

(2) セル選択ツール RefEdit ( Ver 1.2.0 , 2009/ 8/25 )
http://blog.livedoor.jp/addinbox/archives/51219982.html

(3) アイコン画像ロードツール ( Ver 1.0 , 2009/ 7/ 5 )
http://blog.livedoor.jp/addinbox/archives/51229905.html



AddinBox/VBAユーザーの為のOpenOffice.org 備忘録 『ユーザー定義関数の一覧
http://blog.livedoor.jp/addinbox/archives/51249421.html
最後に編集したユーザー K.Tsunoda [ 8月 25, 2009, 10:52 pm ], 累計 5 回
アバター
parpy
記事: 388
登録日時: 11月 4, 2008, 11:50 pm

Re: ツール3件「INIファイル , RefEdit , アイコンロード」

投稿記事 by parpy »

ブログを見させて頂きましたが、これは凄いですね!
特にINIファイルからイメージを読み込んでボタンに貼り付ける関数などは、目をみはるものがあります。

マクロに関して相当深い造詣をお持ちなのだと思います。
今後も驚くべきマクロが登場するかと思うと楽しみです。
是非これからも頑張ってください!
K.Tsunoda
記事: 71
登録日時: 11月 2, 2008, 6:44 pm
連絡する:

Re: ツール3件「INIファイル , RefEdit , アイコンロード」

投稿記事 by K.Tsunoda »

parpyさん、こんにちは & はじめまして。

>特にINIファイルからイメージを読み込んでボタンに貼り付ける関数
ありがとうございます。
貼り付けの中核部分である はにゃ?さんのコードを見たときには、
「OOoでは、こんな事をしなければいけないのか!」と「こんな方法が有るのか!」という
落胆と驚きの相反する思いがありました。
RefEdit ・ INIと作る内に、INIと組み合わせることを思いつき、
「こんな事をしなければいけないのか!」という部分を上手い具合に隠せたと思います。

ただ、まぁ、【OOo 内の画像】をこんな風(ビットパターンとして取り出す)に使うことには
「良いのかな?」という感じもしてはいるのですが、全く関係の無い他の事に使う訳でなく、
OOo 自身への利用なのだからという事で許して貰おうとところでしょうか・・・

>今後も驚くべきマクロが登場するかと思うと楽しみです。
最終的には、エクセルのkt関数アドイン&kt電話郵便アドインをひとつにまとめた形で
作り上げる予定です。その間でも単発で効果的な機能は公開して行こうかと思います。
K.Tsunoda
記事: 71
登録日時: 11月 2, 2008, 6:44 pm
連絡する:

INIファイル操作関数 アップデート

投稿記事 by K.Tsunoda »

INI ファイル操作関数 ( Ver 2.1 , 2009/7/12 ) バグ修正です。

コード: 全て選択

   -- IniSecExist --
        Case Else
   NG     IniKeyValueList = vntIniData    'Other error
          ^^^^^^^^^^^^^^^
   OK     IniSecExist = vntIniData    'Other error

   -- IniGetValue --
       If (argKey = "") Then
   NG     IniKeyValueList = CVErr(519)   ' #VALUE!
          ^^^^^^^^^^^^^^^
   OK     IniGetValue = CVErr(519)   ' #VALUE!

       For i = 1 to UBound(vntKeyValueList, 1)
   NG   If (argKey = vntKeyValueList(i, 1)) Then
   OK   If (UCase(argKey) = UCase(vntKeyValueList(i, 1))) Then

最後に編集したユーザー K.Tsunoda [ 7月 22, 2009, 4:01 pm ], 累計 1 回
K.Tsunoda
記事: 71
登録日時: 11月 2, 2008, 6:44 pm
連絡する:

INIファイル操作関数 アップデート

投稿記事 by K.Tsunoda »

INI ファイル操作関数 ( Ver 2.2 , 2009/7/22 )をアップデートしました。

IniBatchGetValue / IniBatchUpdValue 関数を追加しましたので、
一度に複数のKeyの更新を行なうのが楽になります。

IniKeyValueList で一括で Key-Value配列データを取り込み。
IniBatchGetValue/IniBatchUpdValue で配列上で更新を実施。
IniRewriteBatch で更新済み Key-Value配列データを一括出力。
K.Tsunoda
記事: 71
登録日時: 11月 2, 2008, 6:44 pm
連絡する:

セル選択ツール RefEdit アップデート

投稿記事 by K.Tsunoda »

セル選択ツール RefEdit をアップデートしました。 ( Ver 1.1.1 , 2009/ 8/ 8 )

イベント引数の [ oEvent ] のタイプが省略( Variant )になっていましたのでタイプを明記しました。

( oEvent ) ⇒ ( oEvent As com.sun.star.sheet.RangeSelectionEvent )


補) バグ修正ではありません。
タイプ省略( Ver 1.1.0 ) でも問題なく動作します。
K.Tsunoda
記事: 71
登録日時: 11月 2, 2008, 6:44 pm
連絡する:

セル選択ツール RefEdit アップデート

投稿記事 by K.Tsunoda »

セル選択ツール RefEdit をアップデートしました。 ( Ver 1.2.0 , 2009/ 8/25 )

「配列変数の代入がリンクだった」に係わる修正です。
http://blog.livedoor.jp/addinbox/archives/51261348.html

【 RefEditExecution 】

コード: 全て選択

Global Function RefEditExecution(ByRef argRefEditValue As Variant) As Boolean
  RefEditExecution = Not blnRefEditFinish
  If blnRefEditFinish Then
    argRefEditValue = aryRefEditValue
  End If
End Function

    ↓

Global Function RefEditExecution(ByRef argRefEditValue As Variant) As Boolean
Dim vntRefEditValue As Variant

  RefEditExecution = Not blnRefEditFinish
  If blnRefEditFinish Then
    vntRefEditValue = aryRefEditValue
    
    'The movement of the array variable to the new memory area by [Redim Preserve].
    Redim Preserve vntRefEditValue(0 to 8)
    
    argRefEditValue = vntRefEditValue
  End If
End Function
一緒にいれてあるサンプルマクロを試すと、この処置の効果が判ります。

3個の RefEdit でセル選択して、チェックボタンを押すとMsgBoxに選択内容が表示されます。
本体マクロの上記修正箇所を【修正前】に直すと、MsgBox には3つとも同じ内容(最後の選択)で表示されてしまいます。
返信する

“コードスニペット(便利な汎用コード)”に戻る