goo blog サービス終了のお知らせ 

Java エクセルVBAのサンプル

浮かんだ、JavaとVBAのサンプルを備忘録として、残しておこうかな、
コードを利用するときは自己責任にてよろしく

今日の雑感

2009-07-13 18:03:24 | Weblog
ほほほ、複素数の演算のvb?vba?を発見
使ってみると、自分で作ったクラスモジュールより、
高速みたい。

所在は、ここ

http://sci.tea-nifty.com/blog/2009/04/excel-vbafft-5e.html

プログラミングが出来ると、場合によって、
高速になるみたい。
当然、余計な処理していないので、
使う人に、それなりの知識を要求されるが

昔、数値計算をベイシックで、書いたプログラムを
Cに移植したら、5倍早くなった経験も
あるが、これも、同じような体験かな

以上


今日の雑感

2009-07-12 10:56:00 | Weblog
今朝、エクセルのアドインとVBAで、複素数を
利用すると、計算速度が、遅いという話が出ていたので、
では、一体どんなに、違うものか、
朝から、VBAで複素数の四則演算のプログラムを
書いてみた。

クラスモジュールに、複素数のクラスを作り、
また、四則演算のクラスを作って、
簡単な、足し算、引き算、掛け算、割り算を
行なってみた、その結果、

アドインによる四則演算--10000回----357秒
自作の複素数四則演算----10000回------2秒

この結果は、あまりにも、違うのね。
私のエクセルはXPなので、アドインしないと、
エンジニアリング関数は、使えないが、
2007は、電器屋で見ると、なんと、複素数関数が
ワークシート関数に、アドインでないので
早くなっていることが、期待されそうです。



今日の雑感

2009-07-11 13:04:56 | Weblog
ここのところ、いろいろあり書いてなかったが、また、復活
先月、ある事があり、商工会議所主催の日商PC検定の日商PCデータ活用の
模擬試験を受ける羽目になった。
マイクロソフトのマウスとか、P検と、同じようなものだろうと思って、やってみたら、
全然違う、ソフトの使い方と言うより、商工会議所主催だけあり、
商取引に関するPCの利用という感じかな。簿記3級程度の知識は、
あるので、学科は、それなりに、点数を取ったが、実地が、
ぼろぼろ、自分では、出来たかなと思ったのだが、どこで、駄目だったのか、
終わったあとでも、よく解らなかった。
データ活用の3級であったが、問題の傾向さえ解っていれば、
すぐ、出来そうだったので、
データ活用の2級の参考書を買って、ここ、一ヶ月やってみた。
パソコンの勉強と言うより、商取引や簿記が、解っていないと、駄目みたいだった。
私的には、どうとも取れる。問題文の解読の方が、時間がかかっているような。
実際、今の何処の企業も、専用のソフトを導入しているだろうから。
あえて、エクセルを使う意味すら、よく解らなかった。
一ヶ月が経過して、3冊を一通り、やってみたが、
7000円を出してまで、検定試験を受けるべきがどうか、困っている。
金銭に余裕が出たら、受けてみるかなと言う感じかな???
しかし、日商簿記は、ハローワークのホームページでは、存在するが、
まだ。PC検定は、存在しないみたいで、求人票では、別表現になっていた。
歴史が新しい検定みたいだな。

今日の雑感(xmlのインテント)

2009-04-27 18:13:16 | Weblog
ここ、二三日、DOMを、いろいろいじっていた。
xmlファイルを奇麗に作るだけでも、いろいろ
あるみたいですね。

http://www6.airnet.ne.jp/manyo/xml/dom_java/home.html
ここで、いろいろ、見たのですが。
基本的に、XMLファイルを読み込む、書き込むは、出来たのですが。
奇麗にインテントされたファイルは、
出来なかった。そこで、いろいろ調べると
以下のページに書いてあった。

http://d.hatena.ne.jp/toolkit/20060721/p1
ここのページに書いてあることを利用すると
奇麗な、インテントされたファイルが、出来た。
このページの終わりに、

****************引用******************
OutputPropertiesFactoryなるもの
Eclipseさんに聞いてみると、JDKにはcom.sun.org.apache.xml.internal.serializer.OutputPropertiesFactoryがある事が分かりました。

試しに、こっちの方を使って実験してみました。

JDK
改行はされるけどインデントはつかない
Xalan
成功
ちょっと混乱気味(笑)

結局、Xalan本体が必要で、OutputKeys.INDENTに"yes"を指定しただけでは駄目で、OutputPropertiesFactory.S_KEY_INDENT_AMOUNTに数値を指定しなきゃ、という結論でしょうか??



これもJDKの実装がXalanの新しいものになれば、そのうち解決されるって話ですかね??


************引用終わり*************************

この辺が、解決されたのか、
私が行なった時には、インテントが奇麗に出来るように
なりました。

今日の雑感(xmlのdecode、encode)

2009-04-23 18:31:40 | Weblog
decode,encodeを調べていたら、Javaに、XMLのencoder,decoderが
あるのですね。
また、一つ発見。これを利用すると、
簡単にXMLの読み書きが、出来そうです。
でも、使ったことないので、
グーグルで、使い方を検索、

http://codezine.jp/article/detail/371?p=1
がヒットした。
これを見ると、なるほど、なるほど、
簡単に、XMLを読み書きでそうだにゃー
しかし、XMLについて、熟知していない筆者としては
Javaでも、他の言語でも、このXMLファイル読み書きできるらしいし
またJavaで、DOMを利用して、xmlを読み書きできるらしい。
この xml decoder、encoderを利用して、
あらゆる、xmlファイルが読めるかと言うと
私には、まだ、そこまで、理解していない。
もうちょっと、調べた方がいいのかな
しかし、簡単なXML処理は、XMLdecoder,XMLencoderで、
出来そうなことは、解った。

今日は、この程度かな。

今日の雑感(synchronizedが、お気に入り)

2009-04-22 13:12:48 | Weblog
今回は、全く、テーマと関係ないことなのですが。
synchronized、、、javaのキーワードなのですが。
何故か、この単語、お気に入りなのです。
使い方が、いまいち、理解できず。
悩んでいるから、頭にこびり付いているのだろうか。
synchronizedで、すぐ思いつくのが、
シンクロナイズドスウィミング、、、、、
あと、いろいろ、同調すると、シンクロ、シンクロと、
騒ぐかな
結構、言葉として使っているのだが、
プログラミングで、使おうとすると、なかなか、
使いこなせない。困った単語である。
今のところ、理解度50%かな。
どちらにしても、マルチスレットでしか、
使わないようなので、マルチスレットなど、
ほとんど、使わない私にとっては、実用上関係ないか
しかし、これを使いこなせるようになると、
javaのレベルアップかと、一人、思っている
マルチユーザーのシングルスレットでも、
synchronizedって、使うのかな。
ちょっと、理解度を越えた問題なので、
解らない。
でも、一歩、一歩かな!!!!!!!!





今日の雑感(Java swing)

2009-04-21 17:07:55 | Weblog
今日は、以前に見つけていた。
swingのいろいろ書いてあるページを、ページプリンターで印刷、
ディスプレでは、気が付かないことが、いろいろ書いてあるなと
感心して、見ていた。

そのページは、以下のページです。

http://wisdom.sakura.ne.jp/system/java/swing/index.html

まだまだ、理解できないことが、いろいろ書いてあり
数日、これで、潰れるかな!!!!

swingに関しては、他にも、以前見つけていた。
こちらもいろいろ書いて、あるだろうが、
まだ、じっくり読んでいないので、
まだ、なんともいえない。

http://www.javadrive.jp/tutorial/index.html
話は、違うが、ブラザーの展示処分のページプリンタ。
純正トナー代と同じ、値段で、買えたので、
ラッキーだった。
掘り出し物が、たまにあるので、電気屋さんめぐりは、
たまにしないといけないですね。

今日の雑感(文字エンコーダー/デコーダー)

2009-04-20 09:13:52 | Weblog
Javaなのですが。最近文字のデコードとエンコードを
いろいろ調べていて、どんどん、いろいろな事を
発見、いろいろ、便利なAPIがあるのね。

http://www.javainthebox.net/publication/200303JP29/Charset.html
また、発見、ちゃんと、こんなAPIもあったのですね。
Javaでも、いろいろなキャラクターセットでの、
文字のエンコード、デコードは
いろいろな方法があることが、解りました。

今日の雑感(byteを16進表記)

2009-04-19 09:40:32 | Weblog
最近、文字コードに悩んでいた。
Javaだと、byte型は-128から127の値なのですよね。
VBだと、0から255なので、直接Hex関数で、容易に、16進表記が
簡単だったのですが。
キーワードが、ちょっと、思いつかなかったので、
ネットサーフィンも、いまいちだった。
いま、GOOGLEも、キーワードが、自動に出てくるので、
java byteから、容易に、キーワードが拾えて、
ヒットした。
いろいろ、やって、16進表記が出来るようにはなったのだが、
以下のページを見ると容易に、16進表記に変換していた。

http://d.hatena.ne.jp/ymoto/20061225/p1
formatを使うと、もっと容易に表現されていた。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=6583&forum=12&2

String.format("%02x", b[i])

たったこれだけで、表現されるとは、悩んだのが一体
何だったのだろうか、
インターネットでは、キーワードさえ、浮かべば、
探せば、あるものですね。
自分で、いろいろ悩んだのが、無駄に終わった。

久しぶりの雑感(文字コード自動判別)

2009-04-18 20:03:32 | Weblog
微分方程式のほうに力を入れていたら、
パソコン使わないので、数値計算から、離れていた。
単に、書き忘れていたともいう

今回は、文字コードの自動判別に着目した。
ここでは、VBとJavaの両方の利用を前提としているので、
両方を、検索して、探してみた。

ところで、なんで、こんなのを探したのか、
これは、Javaのideであるnetbeansのせいなのです。
もともと、プログラミングコードが、SJISで保存されていたのですが。
いつのまにかUTF-8に変わっていた。
そこで、自作のプログラムコード検索プログラムで、
文字化けが発生してしまった。
何とかして、SJISとUTF-8が、自動で判別できないか、
探した。探した。そこで、漸く、見つかった。

Javaでは、以下のURLにあった

http://code.google.com/p/juniversalchardet/
これで、いろいろやったが、文字コードが判別できた。
これは、便利そうなものだった。

VBでは、以下のURLにあった。

http://dobon.net/vb/dotnet/string/detectcode.html
これで、いろいろやったが、結構、判別した。

Javaでは、インプットストリームで、自動判別が、出来るが
UTF-8は、駄目らしい。
ここで、紹介した判別APIは、UTF-8も判別できるみたいだった。