SyntaxHighlighter

2012年5月25日金曜日

AccessからGoogle Mapを呼び出す

Accessベースのシステムで顧客マスタなんかで住所がある場合に、その住所から
Google Mapが呼び出せたら便利と思い調べたら、意外に簡単でした。

ボタンを作ってそのハイパーリンク設定に、指定のアドレスをセットすればいいだけです。

例)


'   Googleマップ用アドレスを定義
Const DispGoogleMap = "http://maps.google.co.jp/maps?f=q&hl=ja&q="

クリック時などのイベントで

'   ハイパーリンク設定

Me![地図照会].HyperlinkAddress = DispGoogleMap & Me![住所]


住所があるシステムに機能追加すれば、簡単な上に喜ばれると思います。
ちょうど日経にもEXCELから利用する記事が載ってましたね。

今度は、AccessからGoogleカレンダーに登録できればいいなぁ。
きっと「yamauchi」さんが何とかしてくれるだろう...


2012年5月23日水曜日

ExcelをAccessに取込時の苦労改善法

Excelでデータを編集して、Accessへ取り込む作業を行うときに苦労する点があります。
見た目と実際の値?が違うので、Accessへ取り込むときにエラーが出ることがあります。
よくあるのが、下記の場合で多々悩まされています。
( ゚皿゚)キーッ!!
1.数値の場合は、そのままの数値と文字列(緑の三角形がでてたりする)として入っているとき。
2.セルが空白の場合、未入力(EmptyとかNull)と空文字がある。(見た目で判断できず一番厄介)
( ゚皿゚)キーッ!!
「1.」では数値として取り込みたいのに文字列があってエラーになり、
「2.」では取込先が空文字禁止や数値型の時にエラーになるし、取り込んだ後も扱いが違うので抽出条件とかで間違いになりやすい。
今まであっても5個ぐらいだったので一つ一つ手作業で修正していました。
が、とても手作業で直せる、探せる件数でないExcelファイルがあり、Excel上で修正できる手法を探しました。

今まで使ったことがなかったのですが、Excelの「区切り位置」という機能を使えばよいということが判明!(≧∇≦)b
実際は、セルの入力値を区切り文字や位置で分割して別々のセルに表示する機能のよう。
・「Excel2007」:[データ]タブ、[データツール]グループの[区切り位置]
・「Excel2003」:メニューバー[データ]から[区切り位置]

「区切り位置」を使って、「区切り文字」をなし→「列のデータ形式」を文字列にしたい場合は「文字列」or数値にしたい場合は「G/標準」
これで、データ形式の統一とセル空白を未入力に統一できます。
一列ごとですが、一括変換が可能でかなり楽になりました。
ExcelをAccess等に取り込むときにエラーが出るなら、試してみては?

2012年5月18日金曜日

Webサイトとメールで接続サーバーを分けるDNS設定

昨日の夜は雨やら風やら雷やら凄かったですね。
もう片方のWeb担当、助田です。
いくら夕立にテンションが上がる私でも、あの雷は少々怖かったです。
天気不安定ですねー。(´・ω・`)

さて、タイトルにある『DNS』ですが、なかなか馴染みがない単語だと思います。
私もこの仕事始めるまでかすりさえしませんでした。

DNS(=Domain Name System)
インターネットを使った階層的な分散型データベースシステムである。
1983年に情報科学研究所 (ISI) のポール・モカペトリスとジョン・ポステルにより開発された。
現在では主にインターネット上のホスト名や電子メールに使われるドメイン名と、IPアドレスとの対応づけを管理するために使用されている。
バーイ ウィキペディア

(´・∀・) < 日本語でひとつお願いします。

サーバーには、それぞれIPアドレスが割り振られています。
「123.123.123.123(仮)」のような、最高三桁の数字が四つ組み合わさったもので、一つとして同じ組み合わせのものはありません。
そしてドメイン名とは、当社だと「joy-h.com」が当社のドメインになります。

現在、「http://www.joy-h.com/」にアクセスすると、当社のWebサイトが表示されます。
それは、『「http://www.joy-h.com/」にアクセスがあったら「IPアドレス:123.123.123.123(仮)のサーバー」に接続する』という設定になっているからです。

これがDNS設定、要するに中継業者みたいなものですね。

世のサーバーは、だいたいWebサーバーとメールサーバーがセットになっています。
ですので、DNS設定も 『 Web(http://www.joy-h.com/)だろうがメール(sample@joy-h.com)だろうが、「joy-h.com」関係のアクセスは全部「IPアドレス:123.123.123.123(仮)のサーバー」に接続する』となります。
通常はこれで問題ありません。

しかし。
もし、サーバーで設定されたメールアカウント数より多くメールアカウントを作りたくなったら、違うサーバーに引越ししなければなりません。
でもWebサイトはファイルの数が多いから引越ししたくない、ということもあるでしょう。
作業、大変ですものね。分かります。(´・ω・)

そうなると、Webサーバーとメールサーバーを別々に契約する、という選択肢が出てきます。
 『 Web(http://www.joy-h.com/)のアクセスは「IPアドレス:123.123.123.123(仮)のサーバー」に接続、メール(sample@joy-h.com)のアクセスは「IPアドレス:000.000.000.000(仮)のサーバー」に接続』といった具合です。

私これ、今まで出来ないと思ってたんですがかなり詳細までDNS設定出来るところだと可能なんですね。知りませんでした。

キーとなるのは「制御タイプ」です。
この制御タイプには、A、CNAMEなど複数あり、どのタイプを使うかで接続条件が異なります。
今回はメールでサーバーを変更しますので、制御タイプは「MX」となります。
制御タイプ「MX」はメールアドレスの接続先だけを変更する、という条件です。

実際の設定方法はドメイン管理会社によって違うので一概に言えませんが、制御タイプ「MX」でメールだけ別サーバーから受信する設定に出来ます。

ちなみに接続タイプ「CNAME」だと、サブドメイン(http://sample.joy-h.com/)だけを違うWebサーバーへ接続させることが可能です。
当社でも、FileMakerメール送受信プラグイン【MailMakerPop】の特設サイトをGoogleサイトで作成し、http://manual-mailmakerpop.joy-h.com/でアクセス出来るようにしています。


オリジナルのドメインを持つことは、最早当たり前となっています。
Google(google.co.jp)、ユニクロ(uniqlo.com)、無印良品(muji.net)など、大きな企業だけでなくフリーランスの方、はたまた個人まで、取得が安価になったこともあり本当にたくさんの方がドメインを取得されています。

ブランドイメージの第一歩というだけでなく、今回のようにDNS設定を変更するだけでメールサーバーを変更出来ますので、プロバイダ発行のメールアドレスと違い、サーバーを引っ越した場合でも名刺やDMに印刷したメールアドレスを修正しなくてもいいというのも、オリジナルドメインの利点です。

オリジナルドメイン、もしお持ちでなければお気軽に当社までご相談くださいね!(`・ω・´)

2012年5月16日水曜日

(((( ;゚д゚))))アワワワワ

おはようございます。
今日はWEB村はいい天気です(*´Д`)


さて、5/13~5/16までの4日間は

楽天のポイント10倍セール+プラチナ会員限定3倍


というセールをしておりました!


このセールにジョイメイトで支援のお手伝いをさせていただいている
大西漬物さまはご参加されたのでその報告をします♪


まず、これがそのセールの特設ページ



























楽天の担当の方によると、

「この企画はとっても競合相手が多く、いかに目立つか?が重要です!」

と言われており、WEB村としては


そ、そんなに競合相手が多いのかぁ~(^_^;)

と少し怖気づいていたのですよ。。


数百店舗がひしめき合って、怒涛の戦いを繰り広げる!!

のようなイメージをいだいていたのです。





が、

実際にページを見てみて





ぁれ?




と。






だって、



























これ、






どうみたって・・・





(・∀・;)



普通じゃね?


私が想像していたより全然普通でした(´∀`;)
ちょっと拍子抜け。



で、

バーンと目立つようにクリックしてもらえるように派手に!インパクトを出した商品画像を!」

と楽天担当の方にアドバイスを頂いたのでこれを作りました。










これを作るのに、5時間半もかかったという・・・(苦笑)




というか、これ1つ作るのに5時間半ではないですよ?
最初に下記の3種類作りまして・・・











「う~ん。インパクトが弱いですねぇ(´∀`;)
せっかくお金をかけて広告を打ち出すのですから
ユーザーにクリックしてもらえるように、もっとインパクトを出したほうが良いですよ」

とアドバイスを頂いたのです。


そうか、そうか。
ならばもっと目立つようにバーン!としないといけないのですねっ!



よしよし、じゃあコレならどうだっ!












「大分インパクトが出ましたねー(・∀・)」


と楽天担当の方にお褒めを頂いきましたー♪



「一番上の野沢菜と店長の菅谷さんが載っているヤツが
一番私(楽天担当)はいいと思います。」
※実際に今回のセールに出した商品画像ですぞ



あぁ。

WEB村は一番下のお漬物セットと店長の菅谷さんのヤツがいいなぁと思っていのですが・・・
↓コレ↓










でも、このセール広告の目的はあくまでも売上を伸ばすこと!

だから、自分の好みがどうとかは全然問題無いのですよ!


そして、この5/13~5/16の4日間のセールで59件の受注がきましたから!


売れたんですよ!


ちゃんと!!



楽天担当の方のアドバイスを聞いててよかった!


きちんと数字で結果が伴ってきてるから、これでいいんです!


私も5時間半頑張った甲斐ありましたよ(´;ω;`)



ちなみに、このセール企画用の商品画像を7案作成したのですが
ただ作成時間が5時間半もかかったわけではないんですよ?


実は、この4日間に
なんと!広告が3つも重なっていたんですよっ!


しかも、楽天側はこの情報を断片的にしかくれないし、話が飛び飛びで、
結局このセールの全容が分からずじまい・・
楽天自体が巨大ですからねー、こういうセールをほぼ毎日数100個企画しているとのことなので、
なかなか全容を分かっている人がいないのかもしれないですよね;
楽天で働くのも大変!


大西漬物さんを始め、WEB村はもちろん主任まで全員が


???(・∀・;)えっ?どゆこと・・・?

イミガワカラナイヨ・・・?


状態だったわけですよ。



セールが始まるギリギリまで。



どういう事なのか、理解できずいったい自分たちは何をしているのか
訳が分からないてんやわんやの状態(苦笑)



状況を整理するのに3時間くらいかかったのかな?





というこんな感じで、日々

(((( ;゚д゚))))アワワワワ





と楽天に振り回されつつ大西漬物さんと頑張っていってますよー!









(((( ;゚д゚))))アワワワワ

2012年5月15日火曜日

FileMaker プラグインの開発をMicrosoft .NET Frameworkで行う[1]

FileMaker プラグインの開発をMicrosoft .NET Frameworkで行う[1]

まずは、以下からテンプレートをダウンロード
24U Plug-In Template 3.0 : http://www.24usoftware.com/PlugInTemplate

24U Plug-In Template 3.0\Projectsの中に
「VisualStudio 2010」と「VisualStudio 2003」のサンプルが入っています。
「VisualStudio 2010」は、C++のIntellisenseが機能しないので「VisualStudio 2005」を使います。

「VisualStudio 2003」内の"PlugInTemplate.vcproj"を「VisualStudio 2005」用に変換します。

「VisualStudio 2005」で
ファイル->開く->プロジェクト/ソリューション
"PlugInTemplate.vcproj"を開く

「Visual Studio 変換ウィザード」で変換してくれます。


テストで
「ビルド->ソリューションのビルド」を行います。

「出力」ウインドウに以下の様に表示されビルドが完了します。

========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

以下に出力されています。
24U Plug-In Template 3.0\Output\FMPluginDebug.fmx


「警告 1」が出ていると思います。
「'sprintf' の宣言を確認してください。」


解決策:
以下ファイルの「sprintf」を「sprintf_s」に変更

24U Plug-In Template 3.0\Sources\FMPluginVersion.cpp //ファイル

117行
修正前:
sprintf(auChars, "%02d%02d%02d00", PLUGIN_VERSION_MAJOR,.....
修正後:
sprintf_s(auChars, "%02d%02d%02d00", PLUGIN_VERSION_MAJOR, .....


Microsoft .NET Frameworkで開発出来るように設定を変更します。
プロジェクト->プロパティ
構成プロパティ
└全般
[共通言語ランタイムサポート]の項を

「共通言語ランタイムサポートを使用しない」
から
「共通言語ランタイムサポート(/clr)」
に変更。

このままビルドを行うと
「error D8016 : コマンド ライン オプション '/MTd' と '/clr' は同時に指定できません」とエラーになります。

解決策:
プロジェクト->プロパティ
構成プロパティ
└C/C++
└コード育成
[ランタイムライブラリ]の項を
「マルチスレッドDLL(/MD)」に変更




まだ、エラーが!
「warning C4747: .....: マネージ コードは、DLL エントリポイントおよび DLL エントリポイントから到達した呼び出しを含むローダー ロック下では実行できません」

解決策:
Support\VisualStudio\FMPluginDllEntryPoint.cpp //ファイル
■以下全てコメントアウト
// FMPluginDllEntryPoint.cpp : Defines the entry point for the DLL application.
//
/*
BOOL APIENTRY DllMain( HANDLE hModule,
                      DWORD  ul_reason_for_call,
                      LPVOID lpReserved )
{
   return TRUE;
}
*/


テストで「ビルド」

========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

警告が無くなり、やっと正常終了!



FileMaker プラグインの開発をMicrosoft .NET Frameworkで行う[2]
につづく...かも?



2012年5月11日金曜日

Apple Sweets 工房

知り合いのあっぷるさんが2月にオープンさせた「Apple Sweets 工房」ですが、看板商品のロールケーキは好調なようです。
http://www.facebook.com/pages/%E8%A1%97%E3%81%AE%E4%B8%AD%E3%81%AE%E5%96%AB%E8%8C%B6%E5%BA%97%E3%81%82%E3%81%A3%E3%81%B7%E3%82%8B-Apple-Sweets-%E5%B7%A5%E6%88%BF/135572679841544

理事長様は大変まめな方で、ブログ更新もほぼ毎日したり、iPodやiPadなども
すぐに取り入れて活用されているので、良い刺激を頂いています。

なかなか行く機会が無いのですが、近くに行かれた際はぜひお立ち寄り下さい。
ちなみに埜中さんもお客様ですね。
http://www.facebook.com/people/Yousuke-Nonaka/100002980621046

モチベーション上がるぜっ!

こんばんわ(・∀・)

現在、大西漬物さまの楽天ショップ運営の
お手伝いをさせていただいているWEB村です。

4/17にオープンしてから、もうすぐ1ヶ月が経とうとしいます。
売れ行きの方は、よいです♪

主任の記事(5/9更新)にも掲載されていますが、
転換率が非常に優秀とのこと!


それを裏付ける証拠を発見したしたよぉ(*´Д`)




それが、これだぁ(`・ω・´)シャキーン!
























楽天市場には、各カテゴリーに分類されていて
そのカテゴリーごとに日、週、月ごとにランキングをとっています。
※ランキング市場 漬物はこちら


4/30~5/6までの分で、なんと!



送料無料! お好きなお漬物5点で選んで1000円

※期間限定セットですので、現在は販売しておりません。。
※リンクはこちら→ http://item.rakuten.co.jp/nasubi/10000025/


11位!!!




おしいっ!


トップ10に入らなかったっ(>_<)oクソォ



でも、すごく嬉しいなぁ♡♡
毎日てんやわんや頑張った努力が報われましたよ。。


こういう風に努力がキチンと数字で現れると
すごく嬉しいですね!いや、ホントに。


これからも頑張って売上伸ばしていけるようにしなきゃ( ー`дー´)キリッ


そのためにも、新規のお客様を獲得しつつ
リピーターを増やしていかねばっ!




ちなみに、

浅漬部門では、浅漬なす

デイリー33位(5/9集計分)とこちらも好調♪
















大西漬物さまで扱っているなすのお漬物は、
どのお漬物よりも特にこだわりを持っていらっしゃるし
全面的にそれを打ち出すようなサイトの作りにしているからなのでしょうか?

浅漬なす単品がトップ50圏内にいるのは嬉しいな♪



5/13からは新たにお得なセールもしていますので
よかったらサイトに遊びにきてくださいね!



と、いう感じで!←どゆ感じ?
WEB村は大西漬物さまのお手伝いを頑張っていきますぞ(*´Д`)






2012年5月9日水曜日

楽天のお漬物やさん!

楽天の出店支援をさせていただいているお漬物やさん「大西漬物」様!まもなくOPEN一ヶ月です。
なんとお試し商品ページの転換率が16%!!!(4/17~5/5)
※転換率とは、訪問客数に対して商品が売れた確率。 1.0%~2.0%で優良とされています。

広告としては、「ニューショップ」と言う枠で新規出店の店舗を対象に無料での掲載のみ!
母の日も重なってプレゼントにしていただいた方も多かった様です。


お試しセットが送料無料!1,000円で大変お得!なのでどうぞお試し下さい!

売上が上がると私の方も嬉しくなします。d(^^)/



2012年5月8日火曜日

「jsshell」で「ChatWork」をプチカスタマイズ!

jsshellは、Chromeのアドインで手軽にJavaScriptの実行テストが行えます。
jQueryも内包?しているようでjQueryを記述してもOKです。


 jsshellの機能の一つに指定したURLが表示された場合に任意のJavaScriptを実行出来るように設定することが出来ます。

で!
この機能を利用してChatWork(チャットワーク)をプチカスタマイズしてみます!


ChatWork(チャットワーク)は、非常に便利でビジネスプランで使っています!
KDDI ChatWork が発表になっていますね!すごいな!


最近、ChatWork(チャットワーク)でチョット不便と思っている事が、

チャットのカテゴリを選択している状態で(下図の場合、「自分専用」を選択中)
「未読:*」があると表示され、未読を読もうとクリックしても別のチャット内の未読なので何も表示されず、チャットのカテゴリ指定を「すべてのチャット」に切り替えなければならない。

なんか不便!



jsshellでカスタマイズしてしまいましょう!
|未読all|」と言うボタン?を追加し、[未読]のクリックと「すべてのチャット」に切り替えを1クリックで行えるようにします!

jsshellをインストールして下さい。

ChatWorkのウインドウを開いておき(https://www.chatwork.com/)

Chromeの右上に[js]と言うボタンが現れるのでクリックします。




ウインドウに
js.custom.edit('ChatWork_Custom');
と入力し、[run]をクリック。※'ChatWork_Custom'は任意で、jsshellへのScriptの登録名です。

以下の様に入力!
Command Shortcut[chatwork_custom]
URL Match RegEx [^https?://www\.chatwork.com/]
URLは正規表現で指定のようですね!既に入力されているはずなので#から後ろを削除して登録しましょう。




スクリプトここから - - - - - - - - - -
javascript:
function Custom(_Target,_Add,_tag,_script){
if($(_Add).length==0){
$(_Target).append(_tag);
var c_script = document.createElement("script");
c_script.type = "text/javascript";
c_script.text =_script;
$("body").append(c_script);
}}

/*未読allボタン*/
Custom(
".ui_chatlistheader",
"#user_custam",
'<div id="user_custam"><a herf="#">|未読all|</a></div>',
'$("#user_custam").click(function(){$("#cw_rc_all").click();$("#cw_only_unread_room").click();})'
);

/*infoTAGボタン*/
Custom(
".toolbar",
"#user_custam_infotag",
'<div id="user_custam_infotag"><a herf="#">|infoTAG|</a></div>',
'$("#user_custam_infotag").click(function(){var str = $("#cw_chattext").val();var row = new Array();row=str.split("\\n");var newstr="[info][title]"+row[0]+"[/title]";for (var i = 1, n = row.length; i < n; i++){newstr = newstr + row[i]+"\\n" ;}newstr = newstr + "[/info]";$("#cw_chattext").val(newstr);})'
);

/*jjs.custom.edit('ChatWork_Custam');*/
/*js.custom.remove('ChatWork_Custam');*/
- - - - - - - - - - ここまで


右上の「チェックマーク」をクリックして登録を完了して下さい。

これでChatWork(チャットワーク)を開いた時に登録したScriptが実行され「|未読all|」ボタンが追加されます。


ついでに上記Scriptには/*infoTAGボタン*/ も仕込んであります。
|infoTAG|」ボタンも追加されます。


|infoTAG|」ボタンをクリックすると
[info][title]タグが追加されます。





ChatWork(チャットワーク)がバージョンアップされこれらの機能が追加されれば不要となりますが、
別機能のプチカスタマイズに使えたり、他のサイトでも使える方法なのでJavaScriptが書ければ何かと便利です。

自己責任でお試し下さい。

今回「jsshell」に登録したスクリプトの削除方法:
「jsshell」ウインドウに以下を入力して実行して下さい。
js.custom.remove('ChatWork_Custam');

2012年5月1日火曜日

Google Calendar API v3 DLL動作テスト

Google Calendar API v3を使用したGoogleカレンダー予定関連の関数DLLの動作テスト




今まで作成した関数のテスト動作用フォームを使って動作テストをやってみた
指定条件の予定一覧を取得する関数を追加してとりあえず使えそうなものになった
必要なものが出てきたら追加する予定


指定条件の予定一覧(Events)を取得するコード(仮)
CalendarService service = createCalendarService();(←自作関数でサービスを作ってる)
Calendar calendar = service.Calendars.Get(CalendarID).Fetch();
(↑なぜかこれがないと動かなかった、何かが足りないのかバグなのか?)
EventsResource.ListRequest lr = service.Events.List(CalendarID);
//開始日時の昇順を指定する場合、「lr.SingleEvents = true;」は必須
//↓2行がないとおそらく更新日時の昇順になる
lr.OrderBy = EventsResource.OrderBy.StartTime;
lr.SingleEvents = true;
//削除したものを表示する場合は下を有効、未指定の場合は削除したものは取得しない
//lr.ShowDeleted = true;
//指定した検索文字列を含む予定を取得したい場合に指定、「Like ”%検索文字列%”」での検索になるもよう
//予定のタイトル(Summary)と説明(Description)は検索対象になっていることを確認
lr.Q = ”検索文字列”
//検索する予定日時範囲の最小日時を指定する場合、たぶんRFC3339形式で入力
//lr.TimeMin<予定の終了日時」の場合、検索対象になるもよう
lr.TimeMin = [RFC3339形式の日時文字列;
//検索する予定日時範囲の最大日時を指定する場合、たぶんRFC3339形式で入力
//「予定の開始日時lr.TimeMax」の場合、検索対象になるもよう
lr.TimeMax = [RFC3339形式の日時文字列];
//例:2012/5/1の予定を取得する場合、「TimeMin=2012/5/1」「TimeMax=2012/5/2」でおk
//一度に取得する予定の件数(ページ件数)を指定する場合、整数(long)で入力
//「lr.PageToken」に「Events.NextPageToken」の値を指定すると次ページを取得可
//lr.MaxResults = 20;
//検索実行してEventsを返す
return lr.Fetch();


c(    っε゚。)っ

chromeThign.exe - Google Chrome上でユーザースクリプト(JavaScript)を実行。

chromeThign.exe - Google Chrome上でユーザースクリプト(JavaScript)を実行。
https://sites.google.com/site/chromething/


アプリ公開!

クローム シング - chromeThign.exe[BETA1]
フリーウェア
Google Chrome上でユーザースクリプト(JavaScript)を実行。
OS:Windows 7 , Xp





「裏ワザ」な感じでGoogleサイトに「 jQuery Nivo Slider :http://nivo.dev7studios.com」を埋め込み! d(^o^)

参考:
GoogleサイトでJavaScriptを動かしてみる | Google Apps Techfirm Lab : http://labs.techfirm.co.jp/apps/iguchi/939