2007-01-01から1年間の記事一覧

Collectionオブジェクト

Collection オブジェクトは複数の要素の集合を扱う為のオブジェクト 中に入っているデータはデータ型が異なっていても構わない。メソッドは以下の通り Add Count Item Remove 参照 http://www.ilovex.co.jp/Division/SRD/archives/2006/03/vbacollection.htm…

「イミディエイト」ウィンドウ

VBA での「イミディエイト」ウィンドウの使い方 参照 http://www.ken3.org/vba/iwind.html 式の実行 ? コマンド で、コマンドの実行結果が得られる(下記の赤字部分) ? Left("ABCD", 2) 2 変数を定義して代入 別に変数宣言はしなくて良い。 適当な変数名を…

Debugオブジェクト

Debug オブジェクトはそのままずばりデバッグの為にあるオブジェクトである。メソッドとしては Print Assert を持つ。 Debug.Print Printメソッドはイミディエイトウィンドウへの出力の為に使われる。 Debug.Print( 文字列 ) Debug.Assert Assertメソッドは…

機種依存文字

python で機種依存文字*1が原因のエラーが発生。 python のエラーコードでは UnicodeError: Shift_JIS decoding error: invalid character 0x8755 となっている。 回避方法についてあーだらこーだら考えたり検索してみたのだが、結局指定文字コードを変えれ…

cpp : プリプロセッサを展開

仕事で障害解析。どうやら対象ソースのコンパイルオプションが期待したとおりに展開していない模様。 ひとまずどの様になっているか解析するのに cpp を使用した。 $ cpp 対象ファイル で、プリプロセッサを展開したファイルを表示。 しかし、他のヘッダファ…

popen 諸々

プロンプトから実行したコマンドの出力を受け取る popen という仕組みがある。 動作的にはコマンドをパイプした結果を受け取っていると考えればよい。 参考 http://www.python.jp/doc/2.4/lib/module-popen2.html 何故か popen2 モジュールと os モジュール…

Template

Python の version 2.4 から Template という仕組みが追加されている(stringモジュール内)。Template とは以前からある %*1 による置き換えではなく、 辞書型(dict)のキー、もしくは辞書に類似した仕組みを要素として使った置き換えをする仕組みである。 …

文字列から文字を除去

rstrip rstrip は文字列右から指定文字を除去するメソッド。 string.rstrip( [ chars ] ) italic;">chars:除去したい文字の集合。文字列型で指定すること。 引数を指定しない場合は \t \n \r \v*1 \f*2 が除去する文字として扱われる。 サンプルコード 以下…

簡単にモジュールの有無をチェック

c オプションを使って簡単なプログラムを走らせることができる。 それの転用 モジュールが存在する時 $ python -c "import sys" $ 何もメッセージが出なければ問題なし。 逆にメッセージが出るようだとモジュールはインストールされてません。 さっさと Chee…

標準入出力の文字コードを変える

標準出力をファイルにリダイレクトする際に ファイルの文字エンコードを Shift_JIS に設定するのに今までは以下の様に行っていた。 $ python script | nkf > output_file しかし、これだと自分は良いのだが余りCUIに慣れていない人に 余計な操作をさせること…

コマンドラインオプションの処理をする : getopt

getopt はコマンドラインオプションのパーザのモジュールである。 参照 http://www.python.jp/doc/2.4/lib/module-getopt.html 記述の方法 o, a = getopt( args, options [, long_options ] ) 引数 引数 説明 args コマンドライン引数。通常 sys.arg[ 1: ] …

演算子について

他言語との違い*1に色々と気付いたのでメモ インクリメント演算子・デクリメント演算子 Python ではインクリメント演算子、及びデクリメント演算子はない模様( 参考 : http://d.hatena.ne.jp/shrkw/20061025/1161885038 )。 何の躊躇も無く記述して、あっさ…

正規表現を使う

VBScript の正規表現モジュールを使うと良いらしい。 参照 http://officetanaka.net/excel/vba/tips/tips38.htm 呼び出し方 Dim re As Object Set re = CreateObject("VBScript.RegExp") プロパティ 名前 説明 Default値 Property 正規表現で使用するパター…

タイマー

参考 http://www.geocities.jp/happy_ngi/YNxv214.html#8-1 Sub TimerTest() ' 5秒待機 Application.Wait( Now + TimeSerial( 0, 0, 5 ) ) MsgBox( "5秒待ちました") ' 1分待機 Application.Wait( Now + TimeValue("00:01:00") ) MsgBox( "1分も待ちました" …

キーでイベントを起こす

user32.lib の GetAsyncKeyState を使用する。 参考 http://www.happy2-island.com/excelsmile/smile04/capter00301.shtml GetAsyncKeyState(MSDN) http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_getasynckeystate…

オブジェクトのリストを参照 : dir()

オブジェクトのリストを参照するのには dir を使用する。 dir( obj ) もし、グローバルスコープのオブジェクトリストを参照したければ引数無しで dir を使用する。 dir()

インスタンスにメソッドを追加

new モジュールを使用すると良いらしい。 以下、サンプル #!/usr/bin/env python # coding : utf-8 import new; class Sample: pass def sample_method( self ): print "I am Test class member." var1 = Sample(); var2 = Sample(); # インスタンスが持つオ…

リスト -> タプル / タプル -> リスト

リストをタプルにする tuple( list ) タプルをリストにする list( tuple ) サンプルプログラム >> l = range( 10 ); >> l [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >> t = tuple( l ); >> t (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) >> list( t ); [0, 1, 2, 3, 4, 5…

CellsとRangeと簡単な記法

セル「A1」にデータを書き込みたい時、以下の3つの指定方法がある*1。 Cells(1, 1) Range("A1") [A1] まぁ、3つ目は今日知ったばかりだが。 スピードについては Cells > Ranges > [address] となっているらしい。 参考 http://officetanaka.net/excel/vba/s…

ファイル処理 (1) : open と close

#!/usr/bin/env python try: fh = open( "test.txt" ); for dat in fh.readlines(): print dat; fh.close(); except IOError, e: print "IO Error : " + str( e );

引数を繰り返し処理

以下は引数を繰り返し echo で表示するパターン @echo off :start if %1 == "" goto end if exist %1 echo %1 shift goto start :end Excelファイルの処理に使ったのだが、何故かfor文では上手く処理できなかった。 @echo off for %%a in ( %* ) do echo %%a…

ファイルの切り替わり時の処理をしたい場合

awk

# 2つ目のファイルに切り替わった際に行いたい処理 ARGIND == 2 { # 処理 } ただし、自分で試した範囲では gawk*1 では ARGIND の動作を確認できたが、 mawk*2 では動作していない模様。 ちなみに ARGIND を使えば前日のこれ複数のファイルを読み込み、尚且…

CheckBoxを1対1で排他処理する

ちょっと作ってみたので書いてみる Private m_conflict As Boolean ' 排他処理状態を示すフラグ '--------------------------------------- ' チェックボックスの排他処理 '--------------------------------------- Private Sub CheckBoxExeclusion(One As …

sub : 文字列の置換

awk

sub は文字列で最初に一致した文字の置換をします。 sub( regexp, replacement, target ) regexp 置換前の文字列。検索対象。正規表現で指定可能。 replacement 置換後の文字列。 target 置き換えの対象となる文字列。 str = "abcdefghijklmn" sub( "def", "…

複数のファイルを読み込み、尚且つそれぞれのファイルで別々の処理を行う方法

awk

2つ以上のファイルをまとめて読み込んで、それぞれのファイルごとに別々の処理をしたい場合 読み込むファイル名が固定であれば以下の様な記述で良い。 FILENAME == "ファイル名" { # 処理 } ファイル名は不確定だが「ファイルを読み込ませる順番(引数の順番…

対象範囲の終端を参照

対象範囲の一番下の行を選択。 Cells(65536, 1).End(xlUp).Select 今居るセル(例えば "B35" とする)から対象範囲の一番右までを選択。 Range(Range("B35"), Range("B35").End(xlToRight)).Select 対象範囲の一番下の行番号を取得。 Dim lin As Long lin = Ce…

ウィンドウを非表示にする。

Windows(数値).Visible = False Windows(ウィンドウ名).Visible = False ブック「sample.xls」ウィンドウを非表示にする。 Windows("sample.xls").Visible = False アクティブウィンドウを非表示にする。 Windows(1).Visible = False アプリケーションのウィ…

Midステートメント

Midステートメントでは文字列の置き換えが出来る。 以下では "いう" を "イウ" に置き換えている。 Dim str As String str = "イウ" Mid("あいうえお", 2, 2) = str

文字列の切り出し

以下の6つの関数がある。 Left LeftB Mid MidB Right RightB このうち、「Left」「Mid」「Right」は文字数単位で 「LeftB」「MidB」「RightB」はバイト数単位で処理を行う。 Left 左端から文字の切り出しを行う。 Left(文字列, 切り出し文字数) LeftB(文字列…

Excel関数を実行

Application.WorksheetFunction.(Excel関数) 数値の切捨てをする場合は Dim num As Integer num = Application.WorksheetFunction.RoundDown( 123, 7 )