エクセルマクロなブログ

エクセル マクロ(Excel VBA)の作成・制作に携わっています。

◆お問い合わせはこちら◆

スポンサーサイト

一定期間更新がないため広告を表示しています

- | - | -

imageBBSバージョンアップ

自作の掲示板CGIでimageBBSというのがあるのですが、
最近、そのサンプルに海外からロボットによるスパム書き込みが頻繁に
あるようになってしまいました。

しょうがないので対策ということで、書き込みフォームの変更と
あと書き込んだ内容について承認制にする機能を追加しました。

書き込まれた時点で書き込み通知メールが届きますので
その内容を見て、削除するなり、認証するなりするように
出来る機能です。

あと過去ログ化機能がイマイチだったので、ブラッシュアップを少し
しました。

半日仕事ですね。まぁそこまでかかってないですけど。

それにしても海外からのロボットによるBBSスパムやブログコメントスパムとか
ホントに頭に来ますね。
一体全体なにを考えてるんでしょうか?
被リンク作成を目指してるんでしょうか。

URLを書き込めないようにすると大分いいようですけど
そうしてもまだスパムがあったりしてイヤになります。

そういえばスパムって豚のソーセージの缶詰の商品名だそうですね。
沖縄ではポピュラーだそうです。
やはり米軍から入ってきたのでしょうか。

imageBBS ver.1.1

JUGEMテーマ:コンピュータ


JUGEMテーマ:インターネット


CGI | - | trackbacks(0)

マクロお問い合わせフォーム バージョンアップ

マクロのお問い合わせを、直メールからメールフォームに先日切り替えたわけですが、最初のお問い合わせの際に文章だけでご要望を記入して頂くことになり、お客様の欲しいイメージが上手く伝わりにくくなってしまったようです。

エクセルでできあがり後のイメージやサンプルデータなんかを送って頂いた方が、やはりイメージが良く伝わります。

以前のメールフォームだと添付ファイルがつけられなかったので、文章でしかイメージをお送りして頂けませんでした。
そのため、1回目のお問い合わせメール(メールフォームからのメール)の後、サンプルデータや完成後のイメージのエクセルファイルを直メールで改めて送って頂くことになり、1クッション間が空いてしまうことになって、スピーディーな対応が出来ていませんでした。

これはまずいなと思いましたので、お問い合わせのメールフォームにファイル添付機能を追加致しました。添付できるファイルは一つだけなので、複数ある場合はlzhやzipなんかで圧縮してお送り願えればと思います。

あと、せっかくお問い合わせ頂いてもメールアドレスが誤っていたためお返事が届かないという事態をなくすために、お客様にもお問い合わせ内容の控えをメールするようにしました。もし控えが届かないようならば、入力されたメールアドレスが誤っていた可能性があると、送信完了画面でお知らせするようになっています。

ぜひ一度お問い合わせ下さいませ。


JUGEMテーマ:インターネット


CGI | - | trackbacks(0)

簡易アクセス解析Ver.1.0

マクロのお仕事の合間に新作CGIを作ってみました。
人のCGIの改造なんかでいろいろやってるアクセス解析CGIを自作してみようと思ったんです。
web裏技さんのLOG Analyzerライクな表示画面のアクセス解析ですが、SSIを使わずに動作します。CGI設置サーバ以外のページのアクセス解析も可能です。

【概要】
設置が簡単で、時間毎、リンク元、リモートホスト、ブラウザの情報を集計するシンプルなアクセス解析です。
SSIを使用できないサーバでも利用できます。
スクリプトをページに埋め込むことで、CGIの設置されたサーバとは別の、CGIが設置できないサーバのページでアクセス解析が利用できます。

簡易アクセス解析Ver.1.0(サンプル)

JUGEMテーマ:インターネット


CGI | - | trackbacks(1)

書き込み通知機能付き画像投稿BBS imagebbs

初めて自作したBBSのCGIでimagebbsというのがあるのだが
当初の予定では画像アップロード機能付きのBBSを作るつもりが
そこまで手が回らず、とりあえず書き込みできて、書き込み通知
メールが届くようになったVer.0.1の時点で放置されていた。

やっとこのたび、画像アップロード可能なBBSとなりVer.1.0と
相成った。

JPEG.GIF.PNGの画像がアップロード可能で、書き込みがあるとsendmailを
使って書き込み通知メールを指定アドレスに送ってくれる。
通知メールには削除URLが載っているので、メールで内容を確認してすぐ
携帯から削除も可能だ。

HTMLのテンプレートをいじればデザインも自由に変更可能だ。

BBS本体はすべてHTMLファイルになるので、サーチエンジンに
検索されやすく、SEO的にもいいものだと思う。

今回のCGIはこちら

JUGEMテーマ:インターネット


CGI | - | trackbacks(0)

エクセル マクロ(Excel VBA)・CGI作成代行ご依頼&見積もりフォーム

今までお仕事の依頼メールの受付はmailtoタグを使ってました。
これだとメールの件名ぐらいしか指定できないし、スパムは一杯くるわ
でいいことありません。

やっぱり事前にお客様のOSやExcel・IEのバージョンなんかが
判った方がいいのでメールフォームを作成することにしました。

作り始めたのはいいのですがPerlは久しぶりだったので、POSTされたデータを
受け取ってエンコードする部分でミスしてはまってしまい時間をロス
してしまいました。

入力項目のチェックをして送信までとりあえず作ってみて、やはり送信前に
内容確認画面が必要だと思い、それを追加。

送信内容確認画面で改行ありのデータをINPUTタグのHiddenにいったん格納
して、再度送信をかけるところでも少し手間取りました。
(はじめは最初の改行までしかデータが送信されなかった)

なんとか出来て設置したのは作業開始から3時間ほど。

まぁ少しカッコついたなと自己満足していたのもつかの間。
夕食の買い物に行く途中、エクセルマクロの場合に必要なエクセルやOS・IEの
バージョンについての質問項目がすっぽり抜けていることに気づきました。

帰って急いでそれらの項目を追加。小一時間ほどで完成。

これでお客様とのやりとりがスムーズに行くと良いなぁと思います。

JUGEMテーマ:インターネット


CGI | - | trackbacks(0)

CGIを初めて組んだのはVisualBasicでだった4

いわゆるインターネットタウンページみたいなCGIの
お話の続き。

地図の位置情報DBが完成したのでそれを取り込み
地図と施設情報を紐づけて動作するようにした。

ようやくクライアントの目指すCGIの形になってきた。

デザインのセンスが私にはなかったので、デザイナーを
先方で用意してくれて、その人が作ったテンプレートを
CGIの表示部分に取り込むこになった。
最初は馬鹿みたいに同じような表示部分もコピペでソース
内にいくつも張り付けたりしていたが、デザインの修正時に
それだと大変なことに気づき、ヘッダーやフッターなどに
分けて変数化した。

あと、使用者のPCの画面表示サイズなどに合わせて
地図のサイズを変えるようにという要望もあったので
それも取り入れた。

面倒だったのがいろいろなブラウザ(といってもMacとWinの
IEとネスケぐらいしかなかったけど)毎に違うJavaScriptとか
の動作を吸収するために、振り分けルーチンを作らなければ
ならなかったこと。
IE3がお馬鹿だったので特に困った。時代はIE4になっていたが
まだ切り捨てるわけにはいかなかったのだ。

施設と施設の二点間距離を求める機能をリクエストされたので、
10何年ぶりに三角関数なんか勉強し直したりして。

いろいろ苦労もしたし、納期はかなりオーバーしたけど、
クライアントにも好評で満足いくものが開発できて
振り返ってみてもとても良い仕事だったと思う。

現在はクライアント以外のところでも稼働しているものが
いくつかあるようだ。

私のバージョンはIIS3用だったけど、IIS3自体に
セキュリティ上問題が出たので2年ぐらい後に
IIS4用のものになった。
この際に地図情報の部分がActiveXになって開発言語も
VBからASPに変わったはずだ。このバージョンは
同じ会社の他の人が携わった。

今は地図エンジン部分が全く他社の製品を使っていて
ソフト自体別会社作成の新バージョンが出ている
ようだ。

終わり
CGI | - | trackbacks(0)

CGIを初めて組んだのはVisualBasicでだった3

いわゆるインターネットタウンページみたいなCGIの
お話の続き。

地図が表示されるだけのCGIサンプルから
次への第一歩は一体どんなのだったのか
残念ながらもう思い出せない。

とりあえずサンプルの日本地図からクライアントの
用意した地図に置き換えたのが最初だったと思う。
それで拡大縮小機能をつけたような気がする。

で、Accessに座標情報を入れていったのかなぁ。
ここら辺は部長がやってくれたような気がする……。

とりあえずDBが変換されて、地図と連動はしないながらも
タウンページ的な検索機能を実装したのが先だったかもしれない。

ここで検索結果を表示するルーチンを作ったわけだけど
ループを回して検索結果の表を作るというのを生まれて
初めて書いたわけだ。
HTMLタグを使ってループで検索結果の表を作る。
いかにもCGIらしい感じに初めてなってきた。
当然検索結果一覧からある項目を選ぶと詳細が
表示される。

今までずっとVBなプログラムだけだったので、そのアプリというか
プログラムを実行中なら変数はクリアしなきゃ保持することも
簡単だったわけだが、CGIは一度処理が終了するとプログラム自体が
終わっちゃうのでプログラム内部に変数を保持することができない。

で、どうするかというと不可視のタグに変数を書き込んでやるわけだ。
検索結果一覧からある項目を選ぶと、保持されている変数を元に
再度検索をかけて、その項目を呼び出すということになる。

ここらへんのフォームのタグは少しやったことがあったので色々
試行錯誤しながらなんとか作ることが出来た。

呼び出しはAccessなので当然SQLである。

まぁ変数さえ拾えればあとはいつもの検索ルーチンと変わりないので
問題はない。

でもここまで来るまでに色々苦労した。
VBで普通のWinアプリを開発している時は
ソースをしこしこ書いてから、テスト動作させてみて
エラーが出た場合は、ソースの問題の部分が黄色くなって
表示される。デバッグはそこを修正すればいいわけだ。

しかしながらCGIは勝手が違った。
IISの仕様なのかCGIがエラーを起こしていても
InternalSeverErrorとかでなくてブラウザが
真っ白け表示になるだけだった。
エラーを起こしたらエラーを起こしたのがどこで
あるか分かるようにしないと行けないのだった。
ブラウザにHTMLで出力を行わないと何も分からない
からエラーページ作成ルーチンを組まないといけない。
当時はCGIは設置しても作成どころか改造すら
しなかったので、そういうのが全然分からなかった。

VBの場合、Perlで組むよりは文法ミスとかは
コンパイル時にチェックされるので楽なのかも
しれないが、そのかわりHTMLタグをPerlよりも
ソースの中に書くのが面倒だったように思う。

つづく
CGI | - | -

CGIを初めて組んだのはVisualBasicでだった その2

いわゆるインターネットタウンページみたいなCGIの
お話の続き。

当日勤めていた会社の主力ソフトはMapinfoという
地図情報システムで開発したアプリで、
これはMapBasicという開発言語があって、
本体のMapinfoは地図情報システムの基本である
地図と地図の座標毎にデータを保存できる
データベースからなっていた。

で、CGIであるが、WinNT4Serverの上にMapinfoの
webアプリ用のサブシステムを導入し、CGIの地図
情報部分を担わせるというモノだった。

地図の方はクライアントの自治体の方で
用意してくれてあったので、それをMapinfo形式に
変換して使った。

タウンページの肝であるお店情報もクライアントが
すでにパソコン通信で使用していたデータ(UNIXの
データベースのデータだった)をエクスポーとして
Access97形式に変換した。

そして問題のCGIであるが、これはその会社では
誰も開発したことのないものだったのだが、
先ほどのMapinfoのサブシステムに英語版だが
VBのCGIサンプル(当然地図も表示されるもの)
がついていた。

NTServerをたてて、そこにIISを導入して
CGIを設置。
ブラウザでアクセスして動作を確認。

単にブラウザに地図が表示されるだけのような
感じだった。

画像と変わらんじゃん……

と途方に暮れていた私に、その会社の開発部長
が解析してくれてどういう風にそれを使えば
CGIが作れるかレクチャーしてくれた。

で、この時点でクライアント先でデモ。
地図が出るだけのCGIでデモ。
当然先方の反応は厳しい。冷や汗が出た。

クライアントの要求を聞くに

そんなCGIが果たして自分に作れるだろうか……
納期も厳しいし……

途方に暮れた。

前に書いた地図の変換もUNIXのDBのデータ変換も
他の人がやってくれたので、CGI本体はもう
自分でやるしかないんだが、このデモの時点では
地図が出るだけのCGIサンプルしかなかったのだ。

つづく
CGI | - | -

CGIを初めて組んだのはVisualBasicでだった

私がCGIを組んだのはPerlではなくVisualBasicだった。
当然ながら仕事でだ。

その当時はまだインターネット黎明期とは言わないまでも
ネットスケープナビゲーター4が出たばかりと言う感じだった。
インターネットエクスプローラーはVer.3で、お世辞にも
出来のいいソフトとは言えなかった。
そのうちIE4が出て、やっとマシになったけど。

なんでVBだったかというとVBしか私の組める言語が
なかったからだ。

それにサーバがLinuxというかUNIX系じゃなかったので
webサーバもApacheじゃなかったのだ。

なんとWindowsNT4Serverだった。
で、webサーバはIIS(Internet Information Services)だった。

当時、FTPでCGIの設置とかは自分のサイトでしていたけど
CGI=BBSまたはアクセス解析ってな感じだったので
どうやって組んでいいものか全く皆目検討つかなかった。

一応「CGI入門」みたいな本を読んでみたが、CGIが
コモン・ゲートウェイ・インターフェイスの略で

・クライアントからの入力を受けて
       ↓
・サーバーで処理を行い
       ↓
・結果をクライアントのブラウザに返す

ってなことでPerlで普通書かれるということが
分かっただけだった。
まぁCGI設置してたんでPerlって言語は名前は
知っていたけど。

当時私の在籍していた会社はGISソフトを開発している会社で
そのCGIは今で言うインターネットタウンページみたいな
ものだった。

電話や住所や業種なんかで検索したお店の周辺の
地図を表示するという、当時としては大変画期的なものだった。
完成した時はあるPC雑誌にもカラーで紹介されていた。

だが、そこまで行くには長い道のりがあったのだった。

つづく
CGI | - | -