| Profileyoukey spacesBlogLists | Help |
|
|
April 20 ホームページを作る(Excel) ここに書き込むのは何年ぶりでしょう? なんとか細々と生きていました(w
さて、今回はブログっぽいホームページをExcelマクロで作成してみたのでご紹介します。
実物はここです ⇒ http://youkeyspace.com/
・「ROOM」ごとにシートを用意(「あれこれROOM」「紅茶ROOM」「映画ROOM」の3シート)
・各ROOM(シート)は表形式で入力(フィールドは「タイトル」「内容」「更新日」の3つででOK)
・各ROOM(シート)ごとに1クリックでHTMLファイルを作成できるし、
全ページのHTMLファイルを1クリックで作成することもできる
・cssは別途用意
HTMLがわかればとても簡単にできます。
cssは別に用意するので、デザイン(色、ヘッダー部画像など)の変更は簡単です。
各ページはマクロでテーブルを作成(<table>タグ)しているので、この形式の変更は
無理ですが、サイズはcssで変更可能です。
そのうち少しずつマクロをご紹介していけたらと思います。
追伸:
[amazon.co.jp で買う]ボタンを表示させたくないのですが、方法がわかりませんでした。
October 14 マクロを複数のブックで共有する(Excel)久しぶりに覚書です。
あるExcelのマクロ(VBA)をつくったのですが、毎回新しいデータ(Excelのブック)が
送られてくるので、その都度マクロをコピー&ペーストしていました。
でもこれは非効率。そこで、ひとつのマクロを複数のブックで共有する方法を調べ
ました。
■方法
『個人用マクロブック』にマクロを保存します。
個人用マクロブックの名前は『PERSONAL.XLS』でした。
■個人用マクロブックの作り方
[ツール]メニューの[マクロ]の[新しいマクロの記録]を選択して、表示したダイアログ
の「マクロの保存先」に『個人用マクロブック』を指定します。
その後[OK]ボタンをクリックしてマクロの記録を開始し、何もせずに記録を終了します。
注意:
[ツール]メニューの[マクロ]の[マクロ]を選択して表示する「マクロ」ダイアログでは
『個人用マクロブック』は指定できません。
■個人用マクロブックにマクロを追加する
『個人用マクロブック』は最初は非表示になっているので、[ウインドウ]メニューの
[再表示]を選択して表示させます。
その後、[ツール]メニューの[マクロ]の[マクロ]を選択して編集します。
個人用マクロブックのシートに参照用の定数データを追加したのですが、
再び「表示しない」設定にしておかないと、Excelブックを開くたびに表示されて
わずらわしかったです(苦笑)
ちなみに、個人用マクロブックはこの↓フォルダにありました。
C:\Documents and Settings\xxx\Application Data\Microsoft\Excel\XLSTART
スタート時に読み込まれるファイルはここに置けばいいのかな?
February 10 Excelでカレンダ(VBA)多くの人は、仕事でスケジュールを書くときに何を使っているのでしょう?
Microsoft Project とかかな?
わたしはラフスケッチはExcelにカレンダを書いてやっているのですが、
カレンダを手入力するのは面倒。そこでカレンダを挿入するマクロを
作ってみました。
年月を指定して、どこかセルを選択してから[カレンダ挿入]ボタンを
クリックすると、図のような1月分のカレンダを挿入します。
簡単なコード(VBA)でできます。うるう年などの難しい計算も必要
ありません。
<<2006.2.13追加>>
お待たせしました。コードをご紹介します。
エラー処理とかしてないので、適当に追加してください。
コードが変でも怒らないでね。
年月を指定するところはリストにしてます。
----------
Private Sub cmdButton_Click()
Dim strYear As String Dim strMon As String Dim week As Variant week = Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") Dim nFontColor As Integer Dim nCnt As Integer Dim cel As Range Dim nline_cnt As Integer '指定された年月 strYear = Cells(2, 2) strMon = Cells(2, 4) '1~3行目には出力できない If 4 > ActiveCell.Row Then MsgBox "1行目から3行目までには出力できません。" & vbCrLf & _ "出力する先頭のセルを選択後、ボタンをクリックしてください。", vbExclamation + vbOKOnly Exit Sub End If '月を出力 Set cel = Cells(ActiveCell.Row, (ActiveCell.Column) + nCnt) cel = CStr(strMon) Set cel = Range(Cells(ActiveCell.Row, (ActiveCell.Column) + nCnt), Cells(ActiveCell.Row, (ActiveCell.Column) + nCnt + 6)) cel.Interior.ColorIndex = 17 cel.MergeCells = True cel.HorizontalAlignment = xlCenter '曜日を出力
For nCnt = 0 To 6 Set cel = Cells(ActiveCell.Row + 1, (ActiveCell.Column) + nCnt) cel = week(nCnt) cel.Interior.ColorIndex = 15 Next '日付出力 nline_cnt = 2 For nCnt = 1 To 31 '曜日を取得する On Error Resume Next Err = 0 this_date = Weekday(strYear & "/" & strMon & "/" & CStr(nCnt)) If Err <> 0 Then Exit Sub End If '曜日の色 Select Case this_date Case 1: '日曜日 nFontColor = 3 nline_cnt = nline_cnt + 1 Case 7: '土曜日 nFontColor = 5 Case Else nFontColor = 1 End Select '日を出力する Set cel = Cells((ActiveCell.Row) + nline_cnt, (ActiveCell.Column) + this_date - 1) cel = nCnt cel.Font.ColorIndex = nFontColor Next
End Sub ----------
February 02 この改行コードが…Webブラウザで表示している一覧のデータをCSV形式でファイルに
出力する機能があるのですが、どうもある一覧だけ先頭に改行コード
が入ります。一体これは・・・?
【原因】
インクルードしているPHPのファイルの最終行に改行コードが
入っているのが原因のようです。次のような感じ。
----------
?>
←ここに改行がある
[EOF]
---------- 【対処】
改行コードを削除しました。これだけで直りました。
----------
?>
[EOF]
---------- 【コメント】
結構繊細なものなのですね。
February 01 ブラウザのエディタを変更する久しぶりの覚書です。
Webブラウザの[表示]→[ソース]メニューを選択したときに開くエディタを
変更する方法です。
レジストリの次の部分を書き換えます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\View Source
Editor\Editor Name このキーの既定値のデータを変更します。
何もしないとメモ帳が開くんですよね。
ちなみに会社ではTera Padを使っています。
January 02 PHPスクリプトの暗号化ツール(ionCube PHP Encoder)何気なく昨年書いたブログを見ていたら、書き忘れがある
ことに気づきました。
PHPの暗号がツール、結局『ionCube』を購入しました。
使い方がとてもわかりやすかったのと値段が決め手かな?
暗号化したものはWindowsでもLinuxでも問題なく動作
しました。
以下、覚書です。
■====================================================■
ionCube PHP Encoder (ionCube Ltd.) http://www.ioncube.jp/ ■====================================================■ 【価 格】 Professional Edition 62,800 円から Cerberus Edition 83,800 円から 【実行環境】 ionCube Loader が必要。(無償) 【メ モ】 日本ではアシアル株式会社がionCubeのパートナーに なっており、日本語でのサポートをしてくれます。 http://www.asial.co.jp/products/ioncube/ そのほかには次のツールもありました。
■====================================================■ Zend Encoder 3.5 日本語版 (ゼンド・ジャパン株式会社) http://www.zend.co.jp/products/encoder/ ■====================================================■ 【価 格】 プロダクト 400,000 円 年間保守アップグレード 80,000 円 メジャーバージョンアップ(製品価格の50%) 【実行環境】 Zend Optimizer が必要。(無償) 【メ モ】 PHP のスクリプトエンジン Zend Engine の 開発メンバがZend社を創設しています。 November 10 HTMLエンティティから通常の文字列に変換するHTMLエンティティから通常の文字列に変換する関数はありません。 でも、関数の組み合わせでできるそうです。 PHPのマニュアルにありました。 function unhtmlentities ($string) { $trans_tbl =get_html_translation_table (HTML_ENTITIES ); $trans_tbl =array_flip ($trans_tbl ); return strtr ($string ,$trans_tbl ); } November 08 MySQLの誤検索MySQLは日本語の検索で誤検索するんですね。
聞いたところによると有名な話だとか。
「一」を検索すると「三」がヒットするし、
「高知」を検索すると「香川」がヒットするし。
他にもありそうですね。
これは仕方がないのでしょうか。
MySQLの仕様ということで済ませてしまおうかな。。 October 30 phpDocumentorを使ってみましたPHPで書いたプログラムのドキュメントが簡単に作れないかな?
と思って検索してヒットしたのがphpDocumentorでした。
早速ダウンロードして使ってみました。
結構簡単に使えるんですね。ただひとつ問題が・・・。
【困ったこと】
クォートがエスケープされちゃって、ソースコードで最初に現れた
シングル/ダブルクォーテーション以降すべて文字列になってしまい
ました。
例:
<ソースファイル>
var $event_handlers = array(
'docblock' => 'handleDocBlock', 'page' => 'handlePage', 'class' => 'handleClass', : <phpDocumentor>
var $event_handlers = array(
'docblock\' => \'handleDocBlock\', : ※ docblock の先頭についてる「' 」以降全部文字列リテラル として扱われる。
【原因】
php.ini の マジッククォートの設定(magic_quotes_runtime)が on になっていた。 magic_quotes_runtime = On この設定が on の場合、データベースおよびテクストファイル を含む外部ソースから データを返す全ての関数のクオートは、 バックスラッシュで エスケープされます。 【対処方法】 php.ini のマジッククォートの設定を off にする。 magic_quotes_runtime = Off 以前、ある「PHP暗号化ツール」のお試し版を使用して同様の 現象が発生したことがあるんだけど、原因は同じかも。 October 20 PHPカバレッジツール(Xdebug )-つづきXdebugのカバレッジ測定用の関数を使っても、何行目を何回実行
したかしかわからないんですよね。しかも実行されなかった行はわから
ない。
そこでまた何かいいものを探していたのですが、Eclipseのプラグインで
PHPファイルのコード行、空白行、コメント行の行数を算出してくれる
ものを見つけました(提供してくださっている方には大変感謝です)。
Xdebugとこのプラグインを組み合わせると、実行されなかったコード行
の数が簡単に(?)わかります。厳密なカバレッジとは言えませんが、
100%でないものだけ確認すればいいので助かります。
Eclipseのプラグインを作れたら面白いかも。なんて。 October 17 PHPカバレッジツール(Xdebug )PHP4用のツールを調べたのですが、これは使えるかな?
■Xdebug (Derick Rethans)
http://www.xdebug.org/docs-functions.php#coverage PHPのデバッグ用ソフトウェア。 カバレッジ用の関数を使うと、ソースファイルの何行目 を何回通ったかがわかります。ただし、通らない行は 結果として出力されません。 そのまま使うのは難しいかも?
【ライセンス】 The Xdebug License, version 1.01 (Based on "The PHP License", version 3.0) http://www.xdebug.org/license.php October 11 PHP4でカバレッジは・・・PHP4で作ったプログラムのカバレッジを調べたいのですが、
そんなツールはないのでしょうか・・・。
PHP5だといくつかあるみたいなのですが。それほど違いは
ないのでしょうか?やってみればわかるか。(ぶつぶつ)
September 23 MOT Expert先日MOT事務局から
のお知らせがきていました。(一応MOT取得者なので)
この資格、どのくらいニーズがあるのか気になります。 わたしは今のところ「MOT Expert」の取得条件を満たしていない
のですが、もしニーズがあるのなら考えてみようかな、と。
MOTはWord2003とExcel2003しかもっていないのですが、Accessは
VBAでプログラムを書いていたこともあってわりと好きです。
会社で発表する機会が多いのでPowerPointも使い慣れてるし、
Outlookは毎日使ってます。
しかも「経営」とか「業務改善」とか興味があったりします。
財務諸表がわかるようになりたくて始めた簿記は、面白くなっちゃって
独学で2級までとってしまいました。
せっかくなので何か人の役に立つことで使えるとうれしいのですが。
まぁ、プログラムをかくのも好きなんですけどね。 September 17 フィールドを追加する(MySQLとPostgreSQL)すでに運用中のWebアプリですが、ユーザ要望を反映して、フィールドを追加
することになりました。ここで、MySQL と PostgreSQL の違いを知ることに・・・。
MySQLは好きな位置にフィールドを挿入できるのですが、
PostgreSQLは最後尾に追加することしかできないようです。
【コマンド】
MySQL :alter table テーブル名 add 列名 データ型 first|after 列名
PostgreSQL:alter table テーブル名 add 列名 データ型 PostgreSQLの方にあわせておけば、MySQLでも使えます。
ですので、不本意ながら(?)フィールドは最後尾に追加することにしました。 September 15 フィールド名の大文字/小文字今PHPで作ってるWebアプリは、DBはMySQLとPostgreSQLのどちらでも
よいようにPHPLIBを使って作っています。
ところが、MySQLだとデータを表示するのにPostgreSQLだと表示しないと
いう問題が発生しました。
【現象】
データベースからデータを取得するコードで、MySQLだとデータが取得
できるが、PostgreSQLだと取得できない。(日本語になってる?)
【原因】
フィールド名に大文字と小文字が混在するものがありました。
・MySQLはCREATE TABLE で定義したフィールド名になる
・PostgreSQLは常に小文字になる
SQLでアクセスする場合は大文字と小文字の違いは無視されるので問題
ないのですが、PHPでデータベースからデータをフェッチするときはどうやら
大文字と小文字を区別するようです。(確信はありませんが)
【対策】
プログラム中でMySQLとPostgreSQLのどちらを使っているかを判断して
フィールド名を切り替えるようにしました。
例:こんな感じかな↓
if (MySQLの場合) {
$field_name = "FieldA";
}
else if (PostgreSQLの場合) {
$field_name = "fielda";
}
else {
$field_name = "FieldA"; }
フィールド名は大文字と小文字が混在しないようにしましょう。なーんて。
まだまだわからないことが多いです。。
以上、覚書でした。 September 08 text型の数値の並べ替え覚書です。
text型のフィールドに数値を入力して昇順で並べ替えると
1 → 11 → 2 → 20 → 3
となっちゃうんですよね。 そんなとき、CASTを使うと数値順に並べ替えられます。 サンプル: ORDER BY CAST(id AS UNSIGNED);
ただ、MySQLとPostgreSQLでは指定できる型が異なるようです。
<<MySQL>> BINARY CHAR DATE DATETIME SIGNED {INTEGER} TIME UNSIGNED {INTEGER} <<PostgreSQL>> int4 など 【注意】 PostgreSQLでは、""をintegerにキャストするとエラーになります。 (キャストするフィールドに値がはいっていなければエラーになります)
メッセージ:Invalid syntax input integer: ""
【参考】
ここ↓を参考にさせていただきました。
September 06 次の記事について :MySQL と Postgres の文の違い以前覚書で書いたものですが、今日、別のことを調べてて 『PostgreSQL との互換性を確保するため、MySQL では LIMIT row_count OFFSET というのを知りました。ちょっとショック。。 ここ↓を拝見しました。 http://www.hostgeekz.com/docs/mysql/japanese/manual.ja_Reference.html
元の記事からの引用 MySQL と Postgres の文の違い September 04 どこまでが個人情報?遅ればせながら、会社で個人情報保護法の関係で、各社員が持っている
個人情報を報告することになりました。
個人情報ってどこまで書いてあると該当するのでしょう?
個人を特定できるものということで、表彰状までリストアップされていたけど
(表彰状には 会社、部署、名前 が記載されているからって)。
メールに署名があるとこれも該当するらしい。
思ったよりたくさん該当するものがあるんですね。
世の中悪い人がいなければ、こんなことしなくてもいいのかな?なんて。
August 27 破損したテーブルの修復(active_sessionsのとき)覚書の続きです。
active_sessionsテーブルは、repair table では修復できないと
連絡がありました。こうなったら最後の手段・・・?
【現象】
Webブラウザでシステムにアクセスするとエラーメッセージが出る。
・MySQL Error: 1034 (Incorrect key file for table: 'active_sessions'. Try to repair it) Session halted.
・MySQL Error: 1016 (Can't open file: 'active_sessions.MYD'. (errno: 145))
Session halted. 【原因】
これ↓です。
【修復方法】
■ 手順とコマンド
(1)データの保存先 data\mydb にある3つのファイルの名前を変更します。 active_sessions.frm active_sessions.MYD active_sessions.MYI (2)MySQLを起動して、データベースを指定します。 C:\>mysql -u root -p Enter password: **** (3)active_sessionsテーブルを作成し直します。 mysql> CREATE TABLE active_sessions ( -> sid varchar(32) DEFAULT '' NOT NULL, ---(省略)--- );
【ひと言】 テーブルを一部だけ置き換えるのはどうかな?と思ったのですが、
セッション管理用のテーブルだから問題ないと思って。
まあ、問題なく動いてるとのことだからよしとしてください。
|
|
|