2008年7月アーカイブ

前回の記事のVBAのプログラムを変更してパレットを変更するようにしてみました。
これで50色程度までなら元の画像と同じようにExcel上に表示できます。
(あまり意味はないVBAスクリプトですが^^;)

また、前回わかりやすいように冗長化していた部分を排除し、
さらに描画処理を一時的に停止することにより高速化しました。

※画像はあらかじめ50色以下に減色しておいてください。
※パレットを変更するので、他のExcelで開いているファイルは
閉じておいたほうがよいです。
※エラー処理は省略しているので、画像より大きい範囲に対して
 GetPixelしたりしないでください。。

Excel_color_P.png

VBAサンプルは続きから

簡単ですが、観葉植物のその後です。
(数ヶ月でも植物は結構変わるものですね。
 写真がぜんぜん間に合っていないです。。) 
 
 
◆2008/05/10購入のシマトネリコ

shimatoneriko2.jpg
↑5月24日のシマトネリコ。

shimatoneriko3.jpg
↑5月24日のシマトネリコ。小さな新芽がでています。

shimatoneriko4.jpg
↑5月24日のシマトネリコ。別のところからも新芽がでています。

shimatoneriko_0713.jpg
↑7月13日現在。順調に成長しています。
 (購入時から比較して10~15cmくらい成長)

 
その他の観葉植物は続きから・・・。

Excelでアドインを作成する方法が気になったので調べてみました。
以下のサイトが参考になります。

エクセル アドイン 作り方 第8回 - waste rest way
http://blog.goo.ne.jp/leapdys/e/bf48ff9d45364a3de9d66e23ee4b681a
 
 
VBAのウインドウで、ThisWorkBook上に
Private Sub workbook_addininstall()
'インストール時の処理(ツールバーの作成処理)
End Sub
 
Private Sub workbook_addinuninstall()
'アンインストール時の処理(ツールバー削除処理)
End Sub

と書くだけです。
 
ツールバーの作成のところに、
.OnAction = "マクロ1"
の記述がありますが、ここがボタンが押されたときに呼び出される関数で、この関数の定義を
標準モジュールに書いておけばOKです。

ExcelAddinToolbar2.png
※コードの内容は「エクセル アドイン 作り方 第8回」の内容より。
 

画像からGetPixelでピクセル情報を取得し、セルの色を変更する Excel VBAのコードを書いてみました。
Excelで使える色数に制限があるため、うまくいかないこともありますが、
作ってしまったので載せておきます。

なぜこんなものを作ったかというと、以前の記事と組み合わせて、
画像からピクセル情報をテキストに落としたかったため。

C#を使えばすぐにできるのですが、Excelのセルにも反映させてたら
おもしろそうだと思ってしまったためです。思ったより苦労しました。
VBAでいろいろやろうとすると難しいです><


★概要
・画像を読み込み、Pixel情報を取得
・Excelのセルの色を取得した色に変更
・取得した値をセルの値として入力
excel_pixel_test.png
↑実行のイメージ
 ※実際はセルに値が入ります。
 ※Excelの制限により、うまく色がつかないことがあります。
  ⇒参考記事


前回のExcel VBAでは、オレンジが46など、
Excel VBA特有の色の指定の仕方をしました。

⇒例)
  Range("A1").Interior.ColorIndex = 46


ところで、Excel VBAでは、このような指定の仕方以外にも
RGBを指定して色を変えられるようです。
⇒例)
  Range("A1").Interior.Color = RGB(255, 255, 0)

そこで、その方法を使ってみましたが、うまく行かないこともあるような・・・。
理論上は任意の色を作り出せるはずですが、できないことがあります。
(私のやり方が悪いのかもしれないですが・・・)


ためしにサンプルを作ってみました。
RGBの値を1ずつ変えながら実行するだけのものです。
本当ならきれいなグラデーションとなるはずが、色が分離してしまっています↓

Excel_Cell_Color_1.png
↑色が分かれてしまっている(Excel VBAでのセルの色分けテスト)
 
 
Vcs_Color_2.png
↑本来はこうなるはず(Visual C#での色塗りテスト)
 
  
もう一例やってみたので紹介します(続きから)

Excelのアドインである「らくらく罫線」がすばらしいため
ExcelのVBAに興味がわきました。
VBAで簡単なコードを作ってみたので載せておきます。


◆概要

☆以下の動作をするテストプログラムです。
 ・セルの値に応じて、自動でセルの色を色分けする(今回は1~3の3通り)
 ・セルの色に応じて、自動でセルに数値を記入(今回は1~3の3通り)
 ※いずれもフォームにボタンを配置し、ボタンをクリックしたときの
  イベントの中のコードのイメージです。


VBA_Sample_rei.png
↑マクロ実行例  ※あらかじめセルに1~3の数値を入れた物を用意します。
 ※今回は1が黒、2がオレンジ、3が赤に変換されます。
 ※範囲は16*16個まで。


VBAマクロの中身は続きからどうぞ

おもしろいソフトを見つけたので紹介します。
Excelで表で作ったものをテキストに変換できる「らくらく罫線」
というExcelアドインです。

Excelで作成し、変換できるため、とても便利です。
Excelとの連携がおもしろい、便利だと感じました。
(このようなソフトを作ろうと思ったのですが、すでにこれがありました。
欠点があるとすればExcelのある環境が必要なことぐらい。)

rakurakukeisen.png
↑作成イメージ。操作は簡単。

sftpでファイルを自動転送する簡単なTeraTermマクロを作ってみました。
いつも同じディレクトリにファイルを転送するような場合に有効です。
(ただし、パスワードを平文で書いているのでセキュリティ的には×です)

なんてことはないTeraTermマクロなのですが、文字列をつなげるのに
strconcatをつかうのがポイントです。


◆使い方

1.マクロに書いてあるユーザ名、ホスト名、パスワード、アップロードディレクトリ
等をあらかじめ書き換えておく。(★部分)

2.転送元マシンにログインする

3.マクロを実行

4.自動的に対象マシンにログインされ、
 ダイアログが表示されるのでディレクトリ名を入力

5.アップロード完了


マクロは続きからどうぞ