<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2749062382045887602</id><updated>2024-10-18T14:13:23.041+09:00</updated><category term="[2010]サーバアーキテクチャ"/><category term="[2011]サーバアーキテクチャ"/><category term="[2010]モバイルアプリケーション"/><category term="[2010]memo"/><category term="[2012]サーバアーキテクチャ"/><category term="[2011]データベース基礎演習"/><category term="[2011]モバイルアプリケーション"/><category term="[2012]ExcelVBA"/><category term="[2010]卒業研究"/><category term="[2011]ExcelVBA"/><category term="[2012]DB演習"/><category term="[2012]GUIアプリケーション"/><title type='text'>[ACY] Outside of School Hours</title><subtitle type='html'>サーバアーキテクチャ，モバイルアプリケーション，卒業研究等履修者向けのサポートを目的としたBlogです．</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>189</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-823742359020860645</id><published>2013-03-13T14:37:00.001+09:00</published><updated>2013-03-13T14:38:17.523+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]DB演習"/><title type='text'>最終課題(独自DBの作成)</title><content type='html'>実際に業務で使う（かもしれない）DBを想定し，独自のDBを作成して下さい．&lt;br&gt;
&lt;br&gt;
まずは，どの業種向けの，どのような種類のDBなのかを考えてください．&lt;br&gt;
そして，作成するDBの方向性が決まったら，まずはExcelを用いてDBの原型となる表を作成します．&lt;br&gt;
表が作成出来たら正規化を行い，（リレーションを考えながら）複数の表に分割します．&lt;br&gt;
後はACCESS上でテーブル～クエリ～フォーム・レポートを順番に作成していきます．&lt;br&gt;
&lt;br&gt;
テーブル構成・クエリについては，Excelで作業している段階である程度確定しますが&lt;br&gt;
フォーム・レポートについては，実際の業務の現場でどのように使われるかを想像しながら&lt;br&gt;
作り込む事になりますので，皆さんの腕の見せ所です．&lt;br&gt;
&lt;br&gt;
例）&lt;br&gt;
・小売店向けの販売管理DB&lt;br&gt;
→単なる集計表ではなく，消費税増税対応とすることで，使い勝手の良いDBとする．&lt;br&gt;
&lt;br&gt;
・自分専用勤怠管理DB&lt;br&gt;
→出席管理DBの応用版．勤怠の情報から，利用可能有給日数を表示．&lt;br&gt;
&lt;br&gt;
・年賀状送付先管理DB&lt;br&gt;
→毎年年末になると頭が痛い，年賀状の宛名書き．DBを使うことで常に最新の住所情報を使用．&lt;br&gt;

</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/823742359020860645/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/823742359020860645' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/823742359020860645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/823742359020860645'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/03/db.html' title='最終課題(独自DBの作成)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-8874046016219064825</id><published>2013-03-12T11:49:00.000+09:00</published><updated>2013-03-13T13:12:50.913+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]ExcelVBA"/><title type='text'>追加課題(3/12)</title><content type='html'>追加課題１&lt;br&gt;
「Q空き状況一覧」クエリに宿泊税(*1)込み金額を表示せよ．&lt;br&gt;
&lt;br&gt;
宿泊税込み金額
&lt;pre class=&quot;prettyprint&quot;&gt;
宿泊税込み金額: IIf([基本料金]&gt;=15000, [基本料金]+200, IIf([基本料金]&gt;=10000, [基本料金]+100, [基本料金]))
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
追加課題２&lt;br&gt;
「Q空き状況一覧」クエリにサービス料(*2)，消費税(*3)込み金額を表示せよ．&lt;br&gt;
&lt;br&gt;
宿泊税
&lt;pre class=&quot;prettyprint&quot;&gt;
宿泊税: IIf([基本料金]&gt;=15000, 200, IIf([基本料金]&gt;=10000, 100, 0))
&lt;/pre&gt;
&lt;br&gt;
サービス料
&lt;pre class=&quot;prettyprint&quot;&gt;
サービス料:[基本料金]*0.1
&lt;/pre&gt;
&lt;br&gt;
消費税
&lt;pre class=&quot;prettyprint&quot;&gt;
消費税:[基本料金]*0.05
&lt;/pre&gt;
&lt;br&gt;
税込金額
&lt;pre class=&quot;prettyprint&quot;&gt;
税込金額:[基本料金]+[宿泊税]+[サービス料]+[消費税]
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
(*1)本来宿泊税は東京都限定だが，今回は全国で一律に導入されているとする．宿泊税は宿泊料10,000円未満は0円，宿泊料10,000円以上15,000円未満は100円，15,000円以上は200円である．&lt;br&gt;
&lt;br&gt;
(*2)サービス料は宿泊料の1割とする．&lt;br&gt;
&lt;br&gt;
(*3)消費税は5%とする．&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
追加課題３&lt;br&gt;
「F予約登録」フォーム，「R空き状況一覧」レポートに，税込金額を表示せよ．&lt;br&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/8874046016219064825/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/8874046016219064825' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8874046016219064825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8874046016219064825'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/03/312.html' title='追加課題(3/12)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-5994654030504243006</id><published>2013-03-06T10:30:00.000+09:00</published><updated>2013-03-06T10:30:36.309+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]DB演習"/><title type='text'>追加課題(3/6)</title><content type='html'>消費税増税に対応出来るようにせよ．
&lt;pre class=&quot;prettyprint&quot;&gt;
=Int([本体価格]*0.05)
&lt;/pre&gt;
↓
&lt;pre class=&quot;prettyprint&quot;&gt;
=IIf([売上日]&gt;=&quot;2014/04/01&quot;, Int([本体価格]*0.08), Int([本体価格]*0.05))
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/5994654030504243006/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/5994654030504243006' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/5994654030504243006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/5994654030504243006'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/03/36.html' title='追加課題(3/6)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-7737486079175922028</id><published>2013-03-05T10:25:00.001+09:00</published><updated>2013-03-05T11:36:15.927+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]DB演習"/><title type='text'>追加課題(3/5)</title><content type='html'>P139-165 メインサブフォーム&lt;br&gt;
現状では「F売上明細」中の消費税計算が5%固定になっているが，消費税率が8％，10％に増税された場合，DBとしてどのような対応が考えられるのか？&lt;br&gt;
みなさん自身の判断で，増税対応を行ってください．&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
１．時期が来たら使用するDB自体を切り替える（切り替え後のDBは消費税率が８％，もしくは10％）&lt;br&gt;
１－１．消費税率が切り替わるまでは現状のDBを使用し，消費税率が切り替わったら消費税率の計算部分の数字を0.05から0.08に書き換えたDBに変更する．&lt;br&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
=Int([合計金額]*0.05)
&lt;/pre&gt;
↓
&lt;pre class=&quot;prettyprint&quot;&gt;
=Int([合計金額]*0.08)
&lt;/pre&gt;
&lt;br&gt;
２．DB内で動的に消費税率を切り替えるようにする&lt;br&gt;
２－１．IIf等の関数を用いてその場で適切な消費税を計算&lt;br&gt;
&lt;br&gt;
「F売上明細」(サブフォーム)側では売上日が分からず，適用する消費税率が決められないので，「F売上伝票」(メインフォーム)側で消費税率を計算する．
&lt;pre class=&quot;prettyprint&quot;&gt;
=IIf([売上日]&gt;=&quot;2014/04/01&quot;, &quot;増税後&quot;, &quot;増税前&quot;)
&lt;/pre&gt;
↓
&lt;pre class=&quot;prettyprint&quot;&gt;
=IIf([売上日]&gt;=&quot;2014/04/01&quot;, Int([売上明細].[Form]![合計金額]*0.08), Int([売上明細].[Form]![合計金額]*0.05))
&lt;/pre&gt;
２－２．時期による消費税率の違いを記した「T消費税率」のようなテーブルを新規に作成し，消費税計算を行う際は都度参照する．&lt;br&gt;
「T消費税率」テーブルを新規で作成し，売上日を用いて「T消費税率」テーブル中の適用する消費税率を選択肢，税率計算で利用する．



</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/7737486079175922028/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/7737486079175922028' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7737486079175922028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7737486079175922028'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/03/35.html' title='追加課題(3/5)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-4946424632261204722</id><published>2013-02-21T10:46:00.001+09:00</published><updated>2013-02-28T15:25:02.404+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]DB演習"/><title type='text'>追加課題(2/21)</title><content type='html'>出席日数から出席率を自動的に計算するアクセスのDBを作成する．&lt;br&gt;
&lt;br&gt;
１．Excelにて，&lt;a href=&quot;https://sites.google.com/site/mgrsato/20130221.xlsx?attredirects=0&amp;d=1&quot;&gt;資料&lt;/a&gt;を参考に，DBの設計を行う．&lt;br&gt;
&lt;br&gt;
２．Excel上で用意した複数の「テーブル」を，アクセス上に作成&lt;br&gt;
アクセスファイルは&lt;a href=&quot;https://sites.google.com/site/mgrsato/%E5%87%BA%E5%B8%AD%E7%AE%A1%E7%90%86.accdb?attredirects=0&amp;d=1&quot;&gt;こちら&lt;/a&gt;．&lt;br&gt;
&lt;br&gt;
３．必要な項目を表示・計算するような「クエリ」を作成&lt;br&gt;
&lt;br&gt;
４．日々の入力作業・確認作業が簡単に行えるような，使いやすい「フォーム」を作成&lt;br&gt;
&lt;br&gt;
各テーブル，クエリ，フォーム，レポートについては，&lt;a href=&quot;https://sites.google.com/site/mgrsato/%E5%87%BA%E5%B8%AD%E7%AE%A1%E7%90%86ver2.accdb?attredirects=0&amp;d=1&quot;&gt;こちら&lt;/a&gt;のファイル(ver.2)を参照のこと．&lt;br&gt;
&lt;br&gt;
必要出席数の算出は，&lt;a href=&quot;https://sites.google.com/site/mgrsato/%E5%87%BA%E5%B8%AD%E7%AE%A1%E7%90%86ver3.accdb?attredirects=0&amp;d=1&quot;&gt;こちら&lt;/a&gt;のファイル(ver.3)を参照のこと．&lt;br&gt;
&lt;br&gt;レポート画面まで含めたサンプルは，&lt;a href=&quot;https://sites.google.com/site/mgrsato/%E5%87%BA%E5%B8%AD%E7%AE%A1%E7%90%86ver5.accdb?attredirects=0&amp;d=1&quot;&gt;こちら&lt;/a&gt;のファイル(ver.5)．&lt;br&gt;
&lt;br&gt;
&lt;br&gt;当日分出欠入力フォーム，今後一週間のスケジュールレポートを含めた最終的なサンプルは，&lt;a href=&quot;https://sites.google.com/site/mgrsato/%E5%87%BA%E5%B8%AD%E7%AE%A1%E7%90%86ver6.accdb?attredirects=0&amp;d=1&quot;&gt;こちら&lt;/a&gt;のファイル(ver.6)．&lt;br&gt;
&lt;br&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/4946424632261204722/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/4946424632261204722' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4946424632261204722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4946424632261204722'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/02/221.html' title='追加課題(2/21)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-9098870677547221011</id><published>2013-02-20T14:34:00.001+09:00</published><updated>2013-02-22T15:06:37.027+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]DB演習"/><title type='text'>追加課題(2/20)</title><content type='html'>P269&lt;br&gt;
総合問題2　追加課題&lt;br&gt;
1．「Q受注リスト」に「税込金額」フィールドを追加せよ．&lt;br&gt;
ただし，税率は一律5%とする．&lt;br&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
税込金額: [金額]*(1.05)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
2．軽減税率導入に対応出来るようにせよ．&lt;br&gt;
ただし，軽減税率は8%，それ以外の税率は10%とする．&lt;br&gt;
今回の商品分類の中では，食料品(ハム，フルーツ，菓子，缶詰，茶，ジュース)のみ軽減税率の対象とする．&lt;br&gt;
&lt;br&gt;
2-1．「T分類リスト」に「税率」フィールドを追加．&lt;br&gt;
&lt;br&gt;
2-2．「Q受注リスト」の「税込金額」フィールドで，2-1で追加した税率を使って，税込金額を計算．&lt;br&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
税込金額: [金額]*(1+[税率]/100)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
3.受注日により，自動的に税率を変更できるようにせよ．&lt;br&gt;
3-1.まずは受注日によって処理を分岐し，表示するメッセージを切り替える．&lt;br&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
受注日判定:IIf(
 Format([受注日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2015/10/01&quot;,
 &quot;2015/10/1以降&quot;,
 &quot;2015/10/1以前&quot;
)
&lt;/pre&gt;
&lt;br&gt;
3-2.メッセージが思った通りに表示できたら，メッセージの部分を税込金額の計算式に置き換える．&lt;br&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
税込金額(受注日考慮):IIf(
 Format([受注日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2015/10/01&quot;,
 [金額]*(1+[税率]/100),
 [金額]*(1+5/100)
)
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/9098870677547221011/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/9098870677547221011' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/9098870677547221011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/9098870677547221011'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/02/220.html' title='追加課題(2/20)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-2184234346605919036</id><published>2013-02-08T15:03:00.001+09:00</published><updated>2013-02-12T12:35:02.233+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]DB演習"/><title type='text'>追加課題(2/8)</title><content type='html'>今後消費税が以下のように変化すると仮定する．&lt;br&gt;
&lt;table class=&#39;table1&#39; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;標準税率&lt;/td&gt;&lt;td&gt;軽減税率&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;現在&lt;/td&gt;&lt;td&gt;5％&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2014/04/01 - &lt;/td&gt;&lt;td&gt;8%&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2015/10/1&lt;/td&gt;&lt;td&gt;10%&lt;/td&gt;&lt;td&gt;8%&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
※軽減税率は，食料品等生活必需品等が対象となるようです．&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
１．税抜金額を表示
&lt;pre class=&quot;prettyprint&quot;&gt;
税抜金額: [単価]*[数量]
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
２．標準税率の場合の税込金額を表示
&lt;pre class=&quot;prettyprint&quot;&gt;
標準税率税込金額: [単価]*[数量]*1.05
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
３．軽減税率の場合の税込金額を表示
&lt;pre class=&quot;prettyprint&quot;&gt;
軽減税率税込金額: [単価]*[数量]*1.08
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
４．税率種別の表示
&lt;pre class=&quot;prettyprint&quot;&gt;
税率種別: IIf(
 [税率]=&#39;軽減&#39;,
 &quot;軽減税率&quot;,
 &quot;標準税率&quot;
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
５．税率種別毎に税込金額を表示
&lt;pre class=&quot;prettyprint&quot;&gt;
税込金額: IIf(
 [税率]=&#39;軽減&#39;,
 [単価]*[数量]*1.05,
 [単価]*[数量]*1.08
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
６．リレーションを結んでいないテーブルのデータを参照
&lt;pre class=&quot;prettyprint&quot;&gt;
税率種別(標準): DLookUp(
 &quot;[T消費税率].[消費税率]&quot;,
 &quot;T消費税率&quot;,
 &quot;[ID] = &#39;3&#39;&quot;
)
&lt;/pre&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
税率種別(軽減): DLookUp(
 &quot;[T消費税率(軽減)].[消費税率]&quot;,
 &quot;T消費税率(軽減)&quot;,
 &quot;[ID] = &#39;3&#39;&quot;
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
７．2015/10/1以降の消費税率を，税率フィールドの項目により自動的に判別し表示
&lt;pre class=&quot;prettyprint&quot;&gt;
税込金額: IIf(
 [税率]=&#39;軽減&#39;,
 DLookUp(&quot;[T消費税率(軽減)].[消費税率]&quot;,&quot;T消費税率(軽減)&quot;,&quot;[ID] = &#39;3&#39;&quot;),
 DLookUp(&quot;[T消費税率].[消費税率]&quot;,&quot;T消費税率&quot;,&quot;[ID] = &#39;3&#39;&quot;)
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
８．売上日が2014/4/1以降か判別する
&lt;pre class=&quot;prettyprint&quot;&gt;
売上日判別1: IIf(
 Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2014/04/01&quot;,
 &quot;2014/4/1以降&quot;,
 &quot;2014/4/1以前&quot;
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
９．売上日が2015/10/1以降の場合も判別する
&lt;pre class=&quot;prettyprint&quot;&gt;
売上日判別2: IIf(
 Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2014/04/01&quot;,
 IIf(
  Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2015/10/01&quot;,
  &quot;2015/10/1以降&quot;,
  &quot;2014/4/1～2015/9/30&quot;
 ),
 &quot;2014/4/1以前&quot;
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
１０．売上日・商品毎に適用される税率を表示
&lt;pre class=&quot;prettyprint&quot;&gt;
適用税率1: IIf(
 Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2014/04/01&quot;,
 IIf(
  Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2015/10/01&quot;,
  IIF(
   [税率]=&quot;軽減&quot;,
   &quot;8%&quot;,
   &quot;10%&quot;
  ),
  &quot;8%&quot;
 ),
 &quot;5%&quot;
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
１１．売上日・商品毎に適用される税率をテーブルから引っ張ってきて表示&lt;br&gt;
(テーブルから税率を引っ張ってくることによって，急な税率変更にも対応出来るようにする)
&lt;pre class=&quot;prettyprint&quot;&gt;
適用税率2: IIf(
 Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2014/04/01&quot;,
 IIf(
  Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2015/10/01&quot;,
  IIF([税率]=&quot;軽減&quot;,
   DLookUp(&quot;[T消費税率(軽減)].[消費税率]&quot;,&quot;T消費税率(軽減)&quot;,&quot;[ID] = &#39;3&#39;&quot;),
   DLookUp(&quot;[T消費税率].[消費税率]&quot;,&quot;T消費税率&quot;,&quot;[ID] = &#39;3&#39;&quot;)
  ),
  IIF([税率]=&quot;軽減&quot;,
   DLookUp(&quot;[T消費税率(軽減)].[消費税率]&quot;,&quot;T消費税率(軽減)&quot;,&quot;[ID] = &#39;2&#39;&quot;),
   DLookUp(&quot;[T消費税率].[消費税率]&quot;,&quot;T消費税率&quot;,&quot;[ID] = &#39;2&#39;&quot;)
  )
 ),
 IIF([税率]=&quot;軽減&quot;,
  DLookUp(&quot;[T消費税率(軽減)].[消費税率]&quot;,&quot;T消費税率(軽減)&quot;,&quot;[ID] = &#39;1&#39;&quot;),
  DLookUp(&quot;[T消費税率].[消費税率]&quot;,&quot;T消費税率&quot;,&quot;[ID] = &#39;1&#39;&quot;)
 )
)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
１２．売上日・商品毎に税率を適用し，実際の税込金額を表示
&lt;pre class=&quot;prettyprint&quot;&gt;
税込金額(売上日考慮): IIf(
 Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2014/04/01&quot;,
 IIf(
  Format([売上日],&quot;yyyy/mm/dd&quot;)&gt;=&quot;2015/10/01&quot;,
  IIF([税率]=&quot;軽減&quot;,
   [単価]*[数量]*0.01*(100+DLookUp(&quot;[T消費税率(軽減)].[消費税率]&quot;,&quot;T消費税率(軽減)&quot;,&quot;[ID] = &#39;3&#39;&quot;)),
   [単価]*[数量]*0.01*(100+DLookUp(&quot;[T消費税率].[消費税率]&quot;,&quot;T消費税率&quot;,&quot;[ID] = &#39;3&#39;&quot;))
  ),
  IIF([税率]=&quot;軽減&quot;,
   [単価]*[数量]*0.01*(100+DLookUp(&quot;[T消費税率(軽減)].[消費税率]&quot;,&quot;T消費税率(軽減)&quot;,&quot;[ID] = &#39;2&#39;&quot;)),
   [単価]*[数量]*0.01*(100+DLookUp(&quot;[T消費税率].[消費税率]&quot;,&quot;T消費税率&quot;,&quot;[ID] = &#39;2&#39;&quot;))
  )
 ),
 IIF([税率]=&quot;軽減&quot;,
  [単価]*[数量]*0.01*(100+DLookUp(&quot;[T消費税率(軽減)].[消費税率]&quot;,&quot;T消費税率(軽減)&quot;,&quot;[ID] = &#39;1&#39;&quot;)),
  [単価]*[数量]*0.01*(100+DLookUp(&quot;[T消費税率].[消費税率]&quot;,&quot;T消費税率&quot;,&quot;[ID] = &#39;1&#39;&quot;))
 )
)
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/2184234346605919036/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/2184234346605919036' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/2184234346605919036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/2184234346605919036'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/02/28.html' title='追加課題(2/8)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-2758457811358129580</id><published>2013-01-29T11:34:00.002+09:00</published><updated>2013-01-29T11:34:58.820+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]ExcelVBA"/><title type='text'>追加課題(1/29)</title><content type='html'>月別販売データモジュール内の新規シート関数において，&lt;br /&gt;
月の入力で１～１２以外の入力があった場合，&lt;br /&gt;
処理を中断するようにせよ．&lt;br /&gt;
&lt;br /&gt;
→tuki変数の値が１～１２の範囲内か否か？&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 新規シート()
    Dim tuki As String
    ActiveSheet.Copy after:=ActiveSheet
    Range(&quot;C6:D15,F6:F15,J6:J15&quot;).Select
    Selection.ClearContents
    Range(&quot;A1&quot;).Select
    tuki = InputBox(&quot;月を半角の数字で入力してください&quot;, &quot;新規シート作成&quot;)
    If tuki = &quot;&quot; Then
        Application.DisplayAlerts = False
        ActiveSheet.Delete
        Application.DisplayAlerts = True
    Else
        If tuki &lt; 0 Or tuki &gt; 12 Then
            MsgBox &quot;月は１～１２の範囲で入力してください&quot;
            Application.DisplayAlerts = False
            ActiveSheet.Delete
            Application.DisplayAlerts = True
        Else
            On Error Resume Next
            ActiveSheet.Name = tuki &amp; &quot;月度&quot;
            If Err.Number = 1004 Then
                MsgBox &quot;シート名が重複します&quot;
                Application.DisplayAlerts = False
                ActiveSheet.Delete
                Application.DisplayAlerts = True
            End If
        End If
    End If
End Sub
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/2758457811358129580/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/2758457811358129580' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/2758457811358129580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/2758457811358129580'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/01/129.html' title='追加課題(1/29)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-8445572348804609099</id><published>2013-01-23T15:40:00.002+09:00</published><updated>2013-01-23T15:40:31.147+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]ExcelVBA"/><title type='text'>追加課題(1/23)</title><content type='html'>シート「６月度」（販売一覧）の販売データを入力するプログラムにおいて，キャンセルボタンを押すことで処理を中断できるようにせよ．
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 入力()
    Dim hiduke As String
    ActiveWindow.NewWindow
    ActiveWindow.NewWindow
    Windows.Arrange ArrangeStyle:=xlTiled
    Windows(&quot;第6章.xlsm:2&quot;).Activate
    Sheets(&quot;得意先リスト&quot;).Select
    Windows(&quot;第6章.xlsm:1&quot;).Activate
    Sheets(&quot;商品リスト&quot;).Select
    Windows(&quot;第6章.xlsm:3&quot;).Activate
    If Range(&quot;C6&quot;).Value = &quot;&quot; Then
        Range(&quot;C6&quot;).Select
    Else
        Range(&quot;C5&quot;).Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
    End If
    Do While ActiveCell.Offset(0, -1).Value &lt;&gt; &quot;&quot;
        
        hiduke = InputBox(&quot;日付を入力してください&quot; &amp; Chr(13) &amp; &quot;日付入力を終了する場合にはキャンセルボタンを押してください&quot;, , , 200, 200)
        If hiduke = &quot;&quot; Then
            MsgBox &quot;入力をキャンセルします(1)&quot;
            Exit Do
        Else
            ActiveCell.FormulaR1C1 = hiduke
            ActiveCell.Offset(O, 1).Range(&quot;A1&quot;).Select
                
            hiduke = InputBox(&quot;得意先コードを入力してください&quot;, , , 200, 200)
            If hiduke = &quot;&quot; Then
                MsgBox &quot;入力をキャンセルします(2)&quot;
                Exit Do
            Else
                ActiveCell.FormulaR1C1 = hiduke
                ActiveCell.Offset(O, 2).Range(&quot;A1&quot;).Select


                hiduke = InputBox(&quot;商品コードを入力してください&quot;, , , 200, 200)
                If hiduke = &quot;&quot; Then
                    MsgBox &quot;入力をキャンセルします(3)&quot;
                    Exit Do
                Else
                    ActiveCell.FormulaR1C1 = hiduke
                    ActiveCell.Offset(O, 4).Range(&quot;A1&quot;).Select

                    hiduke = InputBox(&quot;数量を入力してください&quot;, , , 200, 200)
                    If hiduke = &quot;&quot; Then
                        MsgBox &quot;入力をキャンセルします(4)&quot;
                        Exit Do
                    Else
                        ActiveCell.FormulaR1C1 = hiduke
                        ActiveCell.Offset(1, -7).Range(&quot;A1&quot;).Select
                    End If
                End If
            End If
        End If
    Loop
    Windows(&quot;第6章.xlsm:2&quot;).Activate
    ActiveWindow.Close
    Windows(&quot;第6章.xlsm:1&quot;).Activate
    ActiveWindow.Close
    ActiveWindow.WindowState = xlMaximized
End Sub
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/8445572348804609099/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/8445572348804609099' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8445572348804609099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8445572348804609099'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/01/123.html' title='追加課題(1/23)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-4819149486632385768</id><published>2013-01-16T11:21:00.001+09:00</published><updated>2013-01-21T11:46:28.931+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]ExcelVBA"/><title type='text'>追加課題(1/16)</title><content type='html'>シート「商品リスト」において，商品を追加する際に使用する対話的なプログラムを作成せよ．&lt;br /&gt;
方針：InputBox関数を利用．追加課題(12/28)を参考に，商品リストの最終行に移動し，そこから入力を開始．入力したセルの周囲に罫線を引く．&lt;br /&gt;
&lt;br /&gt;
１．商品リストの最終行左端に移動
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 商品追加()
    Range(&quot;B5&quot;).Select
    Do While Not (ActiveCell.Value = &quot;&quot;)
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub
&lt;/pre&gt;
&lt;br /&gt;
２．InputBoxを実行し，ユーザーが入力した商品コードを受け取る
&lt;pre class=&quot;prettyprint&quot;&gt;
Dim syouhinCode As String
syouhinCode = InputBox(&quot;商品コードを入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
&lt;/pre&gt;
&lt;br /&gt;
３．商品コードをセルに書き込む
&lt;pre class=&quot;prettyprint&quot;&gt;
ActiveCell.Value = syouhinCode
&lt;/pre&gt;
&lt;br /&gt;
４．セルの周囲に罫線を引く
&lt;pre class=&quot;prettyprint&quot;&gt;
ActiveCell.BorderAround ColorIndex:=1
&lt;/pre&gt;
&lt;br /&gt;
５．一つ右のセルに移動
&lt;pre class=&quot;prettyprint&quot;&gt;
ActiveCell.Offset(0, 1).Select
&lt;/pre&gt;
&lt;br /&gt;
（２～５を繰り返す）&lt;br /&gt;
&lt;br /&gt;
６．完成！&lt;br /&gt;
６－１．素直に繰り返した場合
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 商品追加()
    &#39;表の最終行に移動
    Range(&quot;B5&quot;).Select
    Do While Not (ActiveCell.Value = &quot;&quot;)
        ActiveCell.Offset(1, 0).Select
    Loop
    &#39;商品コードを入力
    Dim syouhinCode As String
    syouhinCode = InputBox(&quot;商品コードを入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    ActiveCell.Value = syouhinCode
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;商品名を入力
    syouhinCode = InputBox(&quot;商品名を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    ActiveCell.Value = syouhinCode
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;色を入力
    syouhinCode = InputBox(&quot;色を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    ActiveCell.Value = syouhinCode
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;単価を入力
    syouhinCode = InputBox(&quot;単価を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    ActiveCell.Value = syouhinCode
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;輸入国を入力
    syouhinCode = InputBox(&quot;輸入国を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    ActiveCell.Value = syouhinCode
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;入荷状況を入力
    syouhinCode = InputBox(&quot;入荷状況を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    ActiveCell.Value = syouhinCode
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
End Sub
&lt;/pre&gt;
&lt;br /&gt;
６－２．データの受付を最初に行い，まとめて書き込みを行う場合
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 商品追加()
    &#39;表の最終行に移動
    Range(&quot;B5&quot;).Select
    Do While Not (ActiveCell.Value = &quot;&quot;)
        ActiveCell.Offset(1, 0).Select
    Loop
    
    &#39;商品コードを受付
    Dim syouhinCode As String
    syouhinCode = InputBox(&quot;商品コードを入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;商品名を受付
    Dim syouhinName As String
    syouhinName = InputBox(&quot;商品名を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;色を受付
    Dim syouhinColor As String
    syouhinColor = InputBox(&quot;色を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;単価を受付
    Dim syouhinTanka As String
    syouhinTanka = InputBox(&quot;単価を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;輸入国を受付
    Dim syouhinYunyuu As String
    syouhinYunyuu = InputBox(&quot;輸入国を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;入荷状況を受付
    Dim syouhinNyuuka As String
    syouhinNyuuka = InputBox(&quot;入荷状況を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    
    &#39;商品コードを書込
    ActiveCell.Value = syouhinCode
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;商品名を書込
    ActiveCell.Value = syouhinName
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;色を書込
    ActiveCell.Value = syouhinColor
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;単価を書込
    ActiveCell.Value = syouhinTanka
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;輸入国を書込
    ActiveCell.Value = syouhinYunyuu
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;入荷状況を書込
    ActiveCell.Value = syouhinNyuuka
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
End Sub
&lt;/pre&gt;
&lt;br /&gt;
６－３．二次元配列を用いてデータを格納した場合
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 商品追加()
    &#39;表の最終行に移動
    Range(&quot;B5&quot;).Select
    Do While Not (ActiveCell.Value = &quot;&quot;)
        ActiveCell.Offset(1, 0).Select
    Loop
    
    Dim shouhin(5, 1) As String
    shouhin(0, 0) = &quot;&quot;
    shouhin(0, 1) = &quot;商品コード&quot;
    shouhin(1, 0) = &quot;&quot;
    shouhin(1, 1) = &quot;商品名&quot;
    shouhin(2, 0) = &quot;&quot;
    shouhin(2, 1) = &quot;色&quot;
    shouhin(3, 0) = &quot;&quot;
    shouhin(3, 1) = &quot;単価&quot;
    shouhin(4, 0) = &quot;&quot;
    shouhin(4, 1) = &quot;輸入国&quot;
    shouhin(5, 0) = &quot;&quot;
    shouhin(5, 1) = &quot;入荷状況&quot;
    
    &#39;商品コードを受付
    shouhin(0, 0) = InputBox(&quot;商品コードを入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;商品名を受付
    shouhin(1, 0) = InputBox(&quot;商品名を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;色を受付
    shouhin(2, 0) = InputBox(&quot;色を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;単価を受付
    shouhin(3, 0) = InputBox(&quot;単価を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;輸入国を受付
    shouhin(4, 0) = InputBox(&quot;輸入国を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    &#39;入荷状況を受付
    shouhin(5, 0) = InputBox(&quot;入荷状況を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    
    &#39;商品コードを書込
    ActiveCell.Value = shouhin(0, 0)
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;商品名を書込
    ActiveCell.Value = shouhin(1, 0)
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;色を書込
    ActiveCell.Value = shouhin(2, 0)
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;単価を書込
    ActiveCell.Value = shouhin(3, 0)
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;輸入国を書込
    ActiveCell.Value = shouhin(4, 0)
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
    &#39;入荷状況を書込
    ActiveCell.Value = shouhin(5, 0)
    ActiveCell.BorderAround ColorIndex:=1
    ActiveCell.Offset(0, 1).Select
End Sub
&lt;/pre&gt;
&lt;br /&gt;
６－４．プログラム内の同じ処理を行う部分をまとめた場合
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 商品追加()
    &#39;表の最終行に移動
    Range(&quot;B5&quot;).Select
    Do While Not (ActiveCell.Value = &quot;&quot;)
        ActiveCell.Offset(1, 0).Select
    Loop
    
    Dim shouhin(5, 1) As String
    shouhin(0, 0) = &quot;&quot;
    shouhin(0, 1) = &quot;商品コード&quot;
    shouhin(1, 0) = &quot;&quot;
    shouhin(1, 1) = &quot;商品名&quot;
    shouhin(2, 0) = &quot;&quot;
    shouhin(2, 1) = &quot;色&quot;
    shouhin(3, 0) = &quot;&quot;
    shouhin(3, 1) = &quot;単価&quot;
    shouhin(4, 0) = &quot;&quot;
    shouhin(4, 1) = &quot;輸入国&quot;
    shouhin(5, 0) = &quot;&quot;
    shouhin(5, 1) = &quot;入荷状況&quot;

    &#39;データの受取
    Dim i As Integer
    For i = 0 To 5
        shouhin(i, 0) = InputBox(shouhin(i, 1) + &quot;を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
    Next i
    
    &#39;データの書込
    Dim j As Integer
    For j = 0 To 5
        ActiveCell.Value = shouhin(j, 0)
        ActiveCell.BorderAround ColorIndex:=1
        ActiveCell.Offset(0, 1).Select
    Next j
End Sub
&lt;/pre&gt;
&lt;br /&gt;
６－５．ループを1つにまとめた場合
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 商品追加()
    &#39;表の最終行に移動
    Range(&quot;B5&quot;).Select
    Do While Not (ActiveCell.Value = &quot;&quot;)
        ActiveCell.Offset(1, 0).Select
    Loop
    
    Dim shouhin(5, 1) As String
    shouhin(0, 0) = &quot;&quot;
    shouhin(0, 1) = &quot;商品コード&quot;
    shouhin(1, 0) = &quot;&quot;
    shouhin(1, 1) = &quot;商品名&quot;
    shouhin(2, 0) = &quot;&quot;
    shouhin(2, 1) = &quot;色&quot;
    shouhin(3, 0) = &quot;&quot;
    shouhin(3, 1) = &quot;単価&quot;
    shouhin(4, 0) = &quot;&quot;
    shouhin(4, 1) = &quot;輸入国&quot;
    shouhin(5, 0) = &quot;&quot;
    shouhin(5, 1) = &quot;入荷状況&quot;

    Dim i As Integer
    For i = 0 To 5
        shouhin(i, 0) = InputBox(shouhin(i, 1) + &quot;を入力してください&quot;, &quot;商品追加&quot;, , 100, 100)
        ActiveCell.Value = shouhin(i, 0)
        ActiveCell.BorderAround ColorIndex:=1
        ActiveCell.Offset(0, 1).Select
    Next i
End Sub
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/4819149486632385768/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/4819149486632385768' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4819149486632385768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4819149486632385768'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/01/116.html' title='追加課題(1/16)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-476164665638728414</id><published>2013-01-16T09:32:00.001+09:00</published><updated>2013-01-16T11:09:28.534+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]ExcelVBA"/><title type='text'>追加課題(1/15)</title><content type='html'>色検索プログラムをIf文のみで実装せよ．&lt;br /&gt;
(P168 MsgBox関数の戻り値参照)
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 色検索()
    Dim iro As Integer
    iro = MsgBox(&quot;ワインの色は赤ですか？&quot;, vbYesNo)
    If iro = 6 Then
        Range(&quot;B5&quot;).Select
        Selection.AutoFilter 3, &quot;赤&quot;
    Else
        iro = MsgBox(&quot;ワインの色は白ですか？&quot;, vbYesNo)
        If iro = 6 Then
            Range(&quot;B5&quot;).Select
            Selection.AutoFilter 3, &quot;白&quot;
        Else
            iro = MsgBox(&quot;ワインの色はロゼですか？&quot;, vbYesNo)
            If iro = 6 Then
                Range(&quot;B5&quot;).Select
                Selection.AutoFilter 3, &quot;ロゼ&quot;
            Else
                MsgBox &quot;選択が間違っています&quot; &amp; Chr(13) &amp; _
                &quot;赤､白､ロゼの中から選択してください&quot;, vbOKOnly + vbExclamation
            End If
        End If
    End If
End Sub
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
輸入国検索プログラムもIf文のみで実装せよ．&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub 輸入国検索()
    Dim kuni As Integer
    kuni = MsgBox(&quot;輸入国はイタリアですか？&quot;, vbYesNo)
    If kuni = 6 Then
        Range(&quot;B5&quot;).Select
        Selection.AutoFilter 5, &quot;イタリア&quot;
    Else
        kuni = MsgBox(&quot;輸入国はフランスですか？&quot;, vbYesNo)
        If kuni = 6 Then
            Range(&quot;B5&quot;).Select
            Selection.AutoFilter 5, &quot;フランス&quot;
        Else
            MsgBox &quot;入力が間違っています&quot; &amp; Chr(13) &amp; _
        &quot;イタリア，フランスのいずれかを入力してください&quot;, vbOKOnly + vbExclamation
        End If
    End If
End Sub
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/476164665638728414/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/476164665638728414' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/476164665638728414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/476164665638728414'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2013/01/115.html' title='追加課題(1/15)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-4048048449819494164</id><published>2012-12-28T11:15:00.000+09:00</published><updated>2013-01-16T09:32:50.408+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]ExcelVBA"/><title type='text'>追加課題(12/28)</title><content type='html'>追加課題&lt;br /&gt;
&lt;table class=&#39;table1&#39; border=&quot;1&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;見出し1&lt;/td&gt;&lt;td&gt;見出し2&lt;/td&gt;&lt;td&gt;見出し3&lt;/td&gt;&lt;td&gt;見出し4&lt;/td&gt;&lt;td&gt;見出し5&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;内容11&lt;/td&gt;&lt;td&gt;内容12&lt;/td&gt;&lt;td&gt;内容13&lt;/td&gt;&lt;td&gt;内容14&lt;/td&gt;&lt;td&gt;内容15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;内容21&lt;/td&gt;&lt;td&gt;内容22&lt;/td&gt;&lt;td&gt;内容23&lt;/td&gt;&lt;td&gt;内容24&lt;/td&gt;&lt;td&gt;内容25&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;内容31&lt;/td&gt;&lt;td&gt;内容32&lt;/td&gt;&lt;td&gt;内容33&lt;/td&gt;&lt;td&gt;内容34&lt;/td&gt;&lt;td&gt;内容35&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;内容41&lt;/td&gt;&lt;td&gt;内容42&lt;/td&gt;&lt;td&gt;内容43&lt;/td&gt;&lt;td&gt;内容44&lt;/td&gt;&lt;td&gt;内容45&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;内容51&lt;/td&gt;&lt;td&gt;内容52&lt;/td&gt;&lt;td&gt;内容53&lt;/td&gt;&lt;td&gt;内容54&lt;/td&gt;&lt;td&gt;内容55&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
既存のエクセル内の表に対して&lt;br /&gt;
　A．一番上の行を見出し行と見なし，黒背景白文字ボールドセンタリングを行う&lt;br /&gt;
　B．2行目以下について，偶数行と奇数行で背景色を交互に塗り分け&lt;br /&gt;
を実現&lt;br /&gt;
ここで，実装するべき機能は&lt;br /&gt;
　１．選択されたセルを開始位置として，そこから表が続く限り処理を繰り返す&lt;br /&gt;
　　　(表が終われば処理終了)&lt;br /&gt;
　２．1つめのif文で1行目か否かを判別し，1行目ならばAの処理を実行&lt;br /&gt;
　３．2つめのif文で2行目移行と判別できたら，その行が奇数行か偶数行か判別&lt;br /&gt;
　　３－１．奇数行だった場合，少し薄めの色で背景を塗る&lt;br /&gt;
　３－２．偶数行だった場合，奇数行よりも少し濃いめの色で背景を塗る&lt;br /&gt;
です．&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
１．横方向に移動し，セルの内容を表示するプログラム&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri1()
    Do While Not (ActiveCell.Value = &quot;&quot;)
        MsgBox ActiveCell.Value
        ActiveCell.Offset(0, 1).Select
    Loop
End Sub
&lt;/pre&gt;

２．縦方向に移動し，セルの内容を表示するプログラム&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri2()
    Do While Not (ActiveCell.Value = &quot;&quot;)
        MsgBox ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub
&lt;/pre&gt;

３．横方向に移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　＋行末までたどり着いたら自動的に改行&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri3()
    Do While Not (ActiveCell.Value = &quot;&quot;)
        MsgBox ActiveCell.Value
        ActiveCell.Offset(0, 1).Select
    Loop
    ActiveCell.Offset(1, 0).Select
End Sub
&lt;/pre&gt;

４．横方向に移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　＋行末までたどり着いたら自動的に改行&lt;br /&gt;
　　＋表の左端まで移動&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri4()
    Do While Not (ActiveCell.Value = &quot;&quot;)
        MsgBox ActiveCell.Value
        ActiveCell.Offset(0, 1).Select
    Loop
    ActiveCell.Offset(1, -5).Select
End Sub
&lt;/pre&gt;

５．横方向に移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　＋行末までたどり着いたら自動的に改行&lt;br /&gt;
　　＋「任意の大きさの」表の左端まで移動&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri5()
    Dim i As Integer
    i = 1
    Do While Not (ActiveCell.Value = &quot;&quot;)
        MsgBox ActiveCell.Value
        ActiveCell.Offset(0, 1).Select
        i = i + 1
    Loop
    ActiveCell.Offset(1, (-i + 1)).Select
End Sub
&lt;/pre&gt;

６．横方向に移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　＋行末までたどり着いたら自動的に改行&lt;br /&gt;
　　＋「任意の大きさの」表の左端まで移動&lt;br /&gt;
　　＋移動後の行に対しても同様の処理を行う&lt;br /&gt;
　　＝任意の表の各セル全範囲を移動し，セルの内容を表示するプログラム&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri6()
    Do While Not (ActiveCell.Value = &quot;&quot;)
        Dim i As Integer
        i = 1
        Do While Not (ActiveCell.Value = &quot;&quot;)
            MsgBox ActiveCell.Value
            ActiveCell.Offset(0, 1).Select
            i = i + 1
        Loop
        ActiveCell.Offset(0, (-i + 1)).Select
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub
&lt;/pre&gt;

７．任意の表の各セル全範囲を移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　＋行数把握&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri7()
    Dim j As Integer
    j = 1
    Do While Not (ActiveCell.Value = &quot;&quot;)
        Dim i As Integer
        i = 1
        Do While Not (ActiveCell.Value = &quot;&quot;)
            MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目&quot;
            ActiveCell.Offset(0, 1).Select
            i = i + 1
        Loop
        ActiveCell.Offset(0, (-i + 1)).Select
        ActiveCell.Offset(1, 0).Select
        j = j + 1
    Loop
End Sub
&lt;/pre&gt;

８．任意の表の各セル全範囲を移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　＋行数把握&lt;br /&gt;
　　＋１行目とその他の行で処理分岐&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri8()
    Dim j As Integer
    j = 1
    Do While Not (ActiveCell.Value = &quot;&quot;)
        Dim i As Integer
        i = 1
        Do While Not (ActiveCell.Value = &quot;&quot;)
            If j = 1 Then
                MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行です）&quot;
            Else
                MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行ではありません）&quot;
            End If
            ActiveCell.Offset(0, 1).Select
            i = i + 1
        Loop
        ActiveCell.Offset(0, (-i + 1)).Select
        ActiveCell.Offset(1, 0).Select
        j = j + 1
    Loop
End Sub
&lt;/pre&gt;

９．任意の表の各セル全範囲を移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　＋行数把握&lt;br /&gt;
　　＋１行目とその他の行で処理分岐&lt;br /&gt;
　　＋２行目以降の奇数行・偶数行で処理分岐&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri9()
    Dim j As Integer
    j = 1
    Do While Not (ActiveCell.Value = &quot;&quot;)
        Dim i As Integer
        i = 1
        Do While Not (ActiveCell.Value = &quot;&quot;)
            If j = 1 Then
                MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行です）&quot;
            Else
                If (j Mod 2) = 1 Then
                    MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行ではありません）（奇数行）&quot;
                Else
                    MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行ではありません）（偶数行）&quot;
                End If
            End If
            ActiveCell.Offset(0, 1).Select
            i = i + 1
        Loop
        ActiveCell.Offset(0, (-i + 1)).Select
        ActiveCell.Offset(1, 0).Select
        j = j + 1
    Loop
End Sub
&lt;/pre&gt;

１０．任意の表の各セル全範囲を移動し，セルの内容を表示するプログラム&lt;br /&gt;
　　　＋行数把握&lt;br /&gt;
　　　＋１行目とその他の行で処理分岐&lt;br /&gt;
　　　＋２行目以降の奇数行・偶数行で処理分岐&lt;br /&gt;
　　　＋各行にあわせた処理を記述&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub ironuri10()
    Dim j As Integer
    j = 1
    Do While Not (ActiveCell.Value = &quot;&quot;)
        Dim i As Integer
        i = 1
        Do While Not (ActiveCell.Value = &quot;&quot;)
            If j = 1 Then
                MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行です）&quot;
                ActiveCell.Font.Bold = True
                ActiveCell.Font.ColorIndex = 2
                ActiveCell.Interior.ColorIndex = 1
            Else
                If (j Mod 2) = 1 Then
                    MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行ではありません）（奇数行）&quot;
                    ActiveCell.Interior.ColorIndex = 15
                    ActiveCell.BorderAround ColorIndex:=1
                Else
                    MsgBox ActiveCell.Value &amp; &quot;, &quot; &amp; j &amp; &quot;行目（見出し行ではありません）（偶数行）&quot;
                    ActiveCell.Interior.ColorIndex = 48
                    ActiveCell.BorderAround ColorIndex:=1
                End If
            End If
            ActiveCell.Offset(0, 1).Select
            i = i + 1
        Loop
        ActiveCell.Offset(0, (-i + 1)).Select
        ActiveCell.Offset(1, 0).Select
        j = j + 1
    Loop
End Sub
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/4048048449819494164/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/4048048449819494164' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4048048449819494164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4048048449819494164'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/12/1-2-3-4-5-11-12-13-14-15-21-22-23-24-25.html' title='追加課題(12/28)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-8875727702675490219</id><published>2012-12-25T15:00:00.003+09:00</published><updated>2012-12-25T15:00:36.220+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]ExcelVBA"/><title type='text'>Select-Caseステートメント SAMPLE(Excel VBA)</title><content type='html'>shiken3()
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub shiken3()
    Dim tensuu As Integer
    tensuu = Range(&quot;C26&quot;).Value
    If tensuu &gt;= 80 Then
        MsgBox &quot;合格です&quot;
    Else
        If tensuu &gt;= 60 Then
            MsgBox &quot;追試です&quot;
        Else
            MsgBox &quot;不合格です&quot;
        End If
    End If
End Sub
&lt;/pre&gt;
&lt;br /&gt;
waribiki()
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub waribiki()
    Dim kingaku As Currency
    kingaku = Range(&quot;C33&quot;).Value
    If Range(&quot;D33&quot;).Value = &quot;一般&quot; Then
        If kingaku &gt;= 50000 Then
            MsgBox &quot;一般：15%割引です&quot;
        Else
            If kingaku &gt;= 30000 Then
                MsgBox &quot;一般：10%割引です&quot;
            Else
                If kingaku &gt;= 10000 Then
                    MsgBox &quot;一般：5%割引です&quot;
                Else
                    MsgBox &quot;一般：割引なしです&quot;
               End If
            End If
        End If
    Else
        If Range(&quot;D33&quot;).Value = &quot;会員&quot; Then
            If kingaku &gt;= 50000 Then
                MsgBox &quot;会員：30% 割引です&quot;
            Else
                If kingaku &gt;= 30000 Then
                    MsgBox &quot;会員：20%割引です&quot;
                Else
                    If kingaku &gt;= 10000 Then
                        MsgBox &quot;会員：10%割引です&quot;
                    Else
                        MsgBox &quot;会員：割引なしです&quot;
                    End If
                End If
            End If
        End If
    End If
End Sub
&lt;/pre&gt;
&lt;br /&gt;
iro()
&lt;pre class=&quot;prettyprint&quot;&gt;
Sub iro()
    Select Case Range(&quot;C34&quot;).Value
    Case &quot;RED&quot;
        strIro = &quot;RED&quot;
    Case &quot;BLUE&quot;
        strIro = &quot;BLUE&quot;
    Case &quot;PINK&quot;
        strIro = &quot;PINK&quot;
    Case &quot;GREEN&quot;
        strIro = &quot;GREEN&quot;
    Case Else
        strIro = &quot;RED.BLUE.PINK.GREENのいずれかを入力してください&quot;
    End Select
        MsgBox strIro
End Sub
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/8875727702675490219/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/8875727702675490219' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8875727702675490219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8875727702675490219'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/12/select-case-sampleexcel-vba.html' title='Select-Caseステートメント SAMPLE(Excel VBA)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-3671846528809049945</id><published>2012-10-25T09:00:00.000+09:00</published><updated>2012-10-25T09:00:07.400+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WEBアプリケーションサーバの構築(6) crontab</title><content type='html'>１．Shell Scriptエラー処理
前回のツールを動作させる前提として「img」ディレクトリが必要だが，もし存在しないとうまく動作しない．&lt;br&gt;
そこで，「img」ディレクトリの存在有無をチェックし，もし存在しない場合は，ディレクトリを作成するようにツールを編集する．&lt;br&gt;
get_image2.sh
&lt;pre class=&quot;prettyprint&quot;&gt;
#!/bin/bash

for user in `ls /home`
do
    id $user &gt; /dev/null 2&gt;&amp;1
    if [ $? -eq 0 ] &amp;&amp; [ ! -d /home/$user/public_html ]; then
        mkdir -p /home/$user/public_html
        chown $user. /home/$user/public_html
        chmod 711 /home/$user
        echo $user
    fi
done
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
２．crontabの利用
逆方向も試してみよう&lt;br&gt;
WEBから受け取った値．．．天気予報の予報値や，特定サイトの値．．．を，&lt;br&gt;
シェルスクリプトでDBサーバに自動登録．&lt;br&gt;
さらにcrontabを使って，定期的に自動実行．&lt;br&gt;
登録された値はHTMLファイルで閲覧可能なものを作成．&lt;br&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
#goo天気の場合
#元ファイル取得
#　wget http://weather.goo.ne.jp/area/4610.rdf
#時刻
#　grep lastBuildDate 4610.rdf | sed -e &quot;s/&lt;lastBuildDate&gt;\(.*\)&lt;\/lastBuildDate&gt;/\1/g&quot;
#天気
#　grep description 4610.rdf | sed -e &quot;s/&lt;description&gt;\(.*\)&lt;\/description&gt;/\1/g&quot;

#Yahoo天気の場合
#元ファイル取得
　wget http://rss.weather.yahoo.co.jp/rss/days/4410.xml
#時刻
　grep lastBuildDate 4410.xml | sed -e &quot;s/&lt;lastBuildDate&gt;\(.*\)&lt;\/lastBuildDate&gt;/\1/g&quot;
#現在の天気と気温を抽出
　grep -n description 4410.xml | grep ^13 | sed -e &quot;s/&lt;description&gt;\(.*\)&lt;\/description&gt;/\1/&quot; | sed &quot;s/\s//g&quot; | sed &quot;s/^.*-//g&quot; | sed &quot;s/\/.*$//g&quot;

1.SQL文を用意
vi temp.sql
 insert into temp (temp) values (10);

2.1で作成したファイルを用いてMySQLへ値流し込み
mysql -u root -s test &lt; temp.sql

3.temp.sqlの値を自動的に更新するシェルスクリプトを作成
temp.sql
 #!/bin/sh
 echo &quot;insert into temp (temp) values (10);&quot; &gt; temp.sql
 /usr/bin/mysql -u root -s test &lt; temp.sql
 exit 0

chmod u+x temp.sql
./temp.sql

4.temp.sqlの中身を自動的に変更する．
temp.sql
 !/bin/sh
 wget http://rss.weather.yahoo.co.jp/rss/days/4410.xml
 str_temp=`grep -n description 4410.xml | grep ^13 | sed -e &quot;s/&lt;description&gt;\(.*\)&lt;\/description&gt;/\1/&quot; | sed &quot;s/\s//g&quot; | sed &quot;s/^.*-//g&quot; | sed &quot;s/\/.*$//g&quot;`
 echo &#39;insert into temp (temp) values (&quot;&#39;$str_temp&#39;&quot;);&#39; &gt; temp.sql
 /usr/bin/mysql -u root -s test &lt; temp.sql
 rm 4410.xml
 exit 0

5.対象とする地域を複数とする．
ファイル名の下２桁目が可変 ---&gt; 4410.xml/4420.xml/4430.xml ... ---&gt; 44*0.xmlの*が1～9まで変化
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/3671846528809049945/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/3671846528809049945' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/3671846528809049945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/3671846528809049945'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/10/web6-crontab.html' title='WEBアプリケーションサーバの構築(6) crontab'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-8031686133246594306</id><published>2012-10-18T11:15:00.000+09:00</published><updated>2012-10-19T11:30:57.366+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WEBアプリケーションサーバの構築(5) Shell Script</title><content type='html'>１．Google画像検索APIの利用&lt;br&gt;
http://ajax.googleapis.com/ajax/services/search/images?q=sato&amp;v=1.0&amp;rsz=1&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
２．Google画像検索API + shellの利用
&lt;pre class=&quot;prettyprint&quot;&gt;
curl -s &#39;http://ajax.googleapis.com/ajax/services/search/images?q=sato&amp;v=1.0&amp;rsz=1&#39; | tr , \\n | grep &quot;url&quot; | sed -e &#39;s/&quot;url&quot;://g&#39; -e &#39;s/&quot;//g&#39;
&lt;/pre&gt;
→Google画像検索の1番最初にマッチした画像のURLが表示される．
&lt;br&gt;
&lt;br&gt;
３．ツールの作成&lt;br&gt;
&lt;br&gt;
get_image.sh
&lt;pre class=&quot;prettyprint&quot;&gt;
#!/bin/sh

target_list=`/usr/bin/mysql -u root -p[password] arts -e &quot;select name from sa2012&quot;`

for name in $target_list
do
        image_url=`curl -s &#39;http://ajax.googleapis.com/ajax/services/search/images?q=&#39;$name&#39;&amp;v=1.0&amp;rsz=1&#39; | tr , &#39;\\n&#39; | grep &quot;url&quot; | sed -e &#39;s/&quot;url&quot;://g&#39; -e &#39;s/&quot;//g&#39;`

        echo $name&quot; --&gt; &quot;$image_url

        curl -s -o img/$name.jpg $image_url
done

exit 0
&lt;/pre&gt;
&lt;br&gt;
※{password}は自自身のパスワードに置き換えること．&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
４．ツールを使用することで，DBに登録されたユーザの画像を，ユーザー名をファイル名として取得することが可能になったので，リストに画像も併せて表示する．
&lt;br&gt;
list6.html
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv=content-type content=&amp;quot;text/html; charset=UTF-8&amp;quot;&amp;gt;
 &amp;lt;title&amp;gt;real-time search sample(AJAX)&amp;lt;/title&amp;gt;
 
 &amp;lt;STYLE TYPE=&amp;quot;text/css&amp;quot;&amp;gt;
 &amp;lt;!--
 .table1 {
  width: 400px;
  border-collapse: collapse;
  border: 1px #708090 solid;
 }
 .table1 TD {
  border: 1px #708090 solid;
 }
 --&amp;gt;
 &amp;lt;/STYLE&amp;gt; 
 
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;xmlhttp.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
    &amp;lt;!--
    findText = findTextOld = &amp;quot;&amp;quot;;

    function loadXmlFile(fName){
        httpObj = createXMLHttpRequest(displayData);
        if (httpObj){
            httpObj.open(&amp;quot;GET&amp;quot;,fName,true);
            httpObj.send(null);
        }
    }

    function displayData(){
        if ((httpObj.readyState == 4) &amp;amp;&amp;amp; (httpObj.status == 200)){
            xmlData = httpObj.responseXML;
            $(&amp;quot;result&amp;quot;).innerHTML = parseXmlData(httpObj.responseText);
        }else{
            $(&amp;quot;result&amp;quot;).innerHTML = &amp;quot;Loading ...&amp;quot;;
        }
    }

    function parseXmlData(xmlData){
        $(&amp;quot;result&amp;quot;).innerHTML = xmlData;
        idListTags = document.getElementsByTagName(&amp;quot;id&amp;quot;);
        numListTags = document.getElementsByTagName(&amp;quot;num&amp;quot;);
        nameListTags = document.getElementsByTagName(&amp;quot;name&amp;quot;);
        idLen = idListTags.length;

        resultText = &amp;quot;&amp;lt;table class=&#39;table1&#39;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th colspan=5&amp;gt;list&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;id&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;num&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;image&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
        for(i=0; i&amp;lt;idLen; i++){
            id = idListTags[i].childNodes[0].nodeValue;
            num = numListTags[i].childNodes[0].nodeValue;
            name = nameListTags[i].childNodes[0].nodeValue;
            str = name.match(findText);
            if (str){
                resultText += &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&#39;http://10.2.5.&amp;quot; + num + &amp;quot;&#39; target=&#39;_blank&#39;&amp;gt;&amp;quot; + num + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot; + name + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img height=100 width=100 src=&#39;img/&amp;quot; + name + &amp;quot;.jpg&#39;&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
            }
        }
        resultText += &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;
        return resultText;
    }

    function inputCheck(){
        findText = document.ajaxForm.requestText.value;
        if (findText != findTextOld) {
            str_search = &amp;quot;./backend.php?search_key=&amp;quot; + findText
            loadXmlFile(str_search);
            findTextOld = findText;
        }else{
//            $(&amp;quot;result&amp;quot;).innerHTML = &amp;quot;Loading ...&amp;quot;;
        }
        setTimeout(&amp;quot; inputCheck()&amp;quot;,500); // 0.5秒毎
    }

    window.onload = inputCheck;
    // --&amp;gt;
    &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;form name=&amp;quot;ajaxForm&amp;quot; onSubmit=&amp;quot;return false&amp;quot;&amp;gt;
&amp;lt;input type=&amp;quot;text&amp;quot; value=&amp;quot;a&amp;quot; name=&amp;quot;requestText&amp;quot;&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;div id=&amp;quot;result&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/8031686133246594306/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/8031686133246594306' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8031686133246594306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8031686133246594306'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/10/web5-shell-script.html' title='WEBアプリケーションサーバの構築(5) Shell Script'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-340256675821071153</id><published>2012-10-11T11:11:00.000+09:00</published><updated>2012-10-19T11:15:12.038+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WEBアプリケーションサーバの構築(4) AJAX</title><content type='html'>フォームにAJAXを使った画面を作成．&lt;br&gt;
&lt;br&gt;
xmlhttp.js
&lt;pre class=&quot;prettyprint&quot;&gt;
// HTTP通信用、共通関数
function createXMLHttpRequest(cbFunc){
 var XMLhttpObject = null;
 try{
  XMLhttpObject = new XMLHttpRequest();
 }catch(e){
  try{
   XMLhttpObject = new ActiveXObject(&amp;quot;Msxml2.XMLHTTP&amp;quot;);
  }catch(e){
   try{
    XMLhttpObject = new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);
   }catch(e){
    return null;
   }
  }
 }
 if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
 return XMLhttpObject;
}
 
// document.getElementById
function $(tagId){
 return document.getElementById(tagId);
}
&lt;/pre&gt;
&lt;br&gt;
backend.php
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;?php
 $db_user  = &amp;quot;[user name]&amp;quot;;
 $db_password = &amp;quot;[password]&amp;quot;;
 $db_name = &amp;quot;[database name]&amp;quot;;
 $db_host  = &amp;quot;localhost&amp;quot;;

//create xml
    header(&#39;Content-type: text/xml; charset=utf-8&#39;);
    echo &#39;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;lt;sa&amp;gt;&#39;;

 $search_key = null;

 if(isset($_GET[&#39;search_key&#39;])) {
  $search_key = $_GET[&#39;search_key&#39;];

  $con = mysql_connect($db_host,$db_user,$db_password) or die(&amp;quot;error!&amp;quot;);
  mysql_select_db($db_name,$con) or die(&amp;quot;DB is not exist&amp;quot;);
  $strsql = &amp;quot;SET CHARACTER SET UTF8&amp;quot;;
  mysql_query($strsql,$con);
  $strsql = &amp;quot;SELECT id, num, name FROM sa2012 WHERE name LIKE &#39;%&amp;quot;.$search_key.&amp;quot;%&#39;;&amp;quot;;
  $res = mysql_query($strsql,$con);

  while ($item = mysql_fetch_array($res)) {
   print &amp;quot;&amp;lt;list&amp;gt;&amp;lt;id&amp;gt;&amp;quot;.$item[0].&amp;quot;&amp;lt;/id&amp;gt;&amp;lt;num&amp;gt;&amp;quot;.$item[1].&amp;quot;&amp;lt;/num&amp;gt;&amp;lt;name&amp;gt;&amp;quot;.$item[2].&amp;quot;&amp;lt;/name&amp;gt;&amp;lt;/list&amp;gt;&amp;quot;;
  }
  mysql_close($con);
    }

    echo &#39;&amp;lt;/sa&amp;gt;&#39;; 
?&amp;gt;
&lt;/pre&gt;
&lt;br&gt;
list4.html
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv=content-type content=&amp;quot;text/html; charset=UTF-8&amp;quot;&amp;gt;
 &amp;lt;title&amp;gt;real-time search sample(AJAX)&amp;lt;/title&amp;gt;
 
 &amp;lt;STYLE TYPE=&amp;quot;text/css&amp;quot;&amp;gt;
 &amp;lt;!--
 .table1 {
  width: 400px;
  border-collapse: collapse;
  border: 1px #708090 solid;
 }
 .table1 TD {
  border: 1px #708090 solid;
 }
 --&amp;gt;
 &amp;lt;/STYLE&amp;gt; 
 
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;xmlhttp.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
    &amp;lt;!--
    findText = findTextOld = &amp;quot;&amp;quot;;

    function loadXmlFile(fName){
        httpObj = createXMLHttpRequest(displayData);
        if (httpObj){
            httpObj.open(&amp;quot;GET&amp;quot;,fName,true);
            httpObj.send(null);
        }
    }

    function displayData(){
        if ((httpObj.readyState == 4) &amp;amp;&amp;amp; (httpObj.status == 200)){
            xmlData = httpObj.responseXML;
            $(&amp;quot;result&amp;quot;).innerHTML = parseXmlData(httpObj.responseText);
        }else{
            $(&amp;quot;result&amp;quot;).innerHTML = &amp;quot;Loading ...&amp;quot;;
        }
    }

    function parseXmlData(xmlData){
        $(&amp;quot;result&amp;quot;).innerHTML = xmlData;
        idListTags = document.getElementsByTagName(&amp;quot;id&amp;quot;);
        numListTags = document.getElementsByTagName(&amp;quot;num&amp;quot;);
        nameListTags = document.getElementsByTagName(&amp;quot;name&amp;quot;);
        idLen = idListTags.length;

        resultText = &amp;quot;&amp;lt;table class=&#39;table1&#39;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th colspan=4&amp;gt;list&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;id&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;num&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;name&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
        for(i=0; i&amp;lt;idLen; i++){
            id = idListTags[i].childNodes[0].nodeValue;
            num = numListTags[i].childNodes[0].nodeValue;
            name = nameListTags[i].childNodes[0].nodeValue;
            str = name.match(findText);
            if (str){
                resultText += &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot; + id + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&#39;http://10.2.5.&amp;quot; + num + &amp;quot;&#39; target=&#39;_blank&#39;&amp;gt;&amp;quot; + num + &amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot; + name + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
            }
        }
        resultText += &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;
        return resultText;
    }

    function inputCheck(){
        findText = document.ajaxForm.requestText.value;
        if (findText != findTextOld) {
            str_search = &amp;quot;./backend.php?search_key=&amp;quot; + findText
            loadXmlFile(str_search);
            findTextOld = findText;
        }else{
//            $(&amp;quot;result&amp;quot;).innerHTML = &amp;quot;Loading ...&amp;quot;;
        }
        setTimeout(&amp;quot; inputCheck()&amp;quot;,500); // 0.5秒毎
    }

    window.onload = inputCheck;
    // --&amp;gt;
    &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;form name=&amp;quot;ajaxForm&amp;quot; onSubmit=&amp;quot;return false&amp;quot;&amp;gt;
&amp;lt;input type=&amp;quot;text&amp;quot; value=&amp;quot;s&amp;quot; name=&amp;quot;requestText&amp;quot;&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;div id=&amp;quot;result&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;blockquote&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/340256675821071153/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/340256675821071153' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/340256675821071153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/340256675821071153'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/10/web4-ajax.html' title='WEBアプリケーションサーバの構築(4) AJAX'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-7387814802408966350</id><published>2012-10-04T11:02:00.000+09:00</published><updated>2012-10-19T11:10:14.610+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WEBアプリケーションサーバの構築(3) PHP</title><content type='html'>HTMLのフォームから値を受け取り，合致したidのみ表示する画面を作成．&lt;br&gt;
&lt;br&gt;
list3_form.html
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
 &amp;lt;title&amp;gt;form&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;form action=&amp;quot;list3.php&amp;quot; method=&amp;quot;get&amp;quot;&amp;gt;
  id : &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;id&amp;quot; /&amp;gt;
  &amp;lt;input type=&amp;quot;submit&amp;quot; /&amp;gt;
 &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;br&gt;
list3.php
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;
&amp;lt;title&amp;gt;list&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php
 $id = htmlspecialchars($_GET[&#39;id&#39;]);

 $db_user  = &amp;quot;[user name]&amp;quot;;
 $db_password = &amp;quot;[password]&amp;quot;;
 $db_name = &amp;quot;[database name]&amp;quot;;
 $db_host  = &amp;quot;localhost&amp;quot;;

 $db = mysql_connect($db_host,$db_user,$db_password);
 mysql_select_db($db_name,$db); 
 $str_sql = &amp;quot;select * from sa2012 where id = &amp;quot;.$id;
 $rs = mysql_query($str_sql,$db);
 $num = mysql_num_fields($rs);

 print(&amp;quot;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th colspan=3&amp;gt;list&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);
 echo(&amp;quot;
 &amp;quot;);
 print(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);
 for ($i=0;$i&amp;lt;$num;$i++){
  print(&amp;quot;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.mysql_field_name($rs,$i).&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;);
 }
 print(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);
 while($row=mysql_fetch_array($rs)){
  echo(&amp;quot;
 &amp;quot;);
  print(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);
  for($j=0;$j&amp;lt;$num;$j++){
   print(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[$j].&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);
  }
  print(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);
 }

 print(&amp;quot;&amp;lt;/table&amp;gt;&amp;quot;);

 mysql_free_result($rs);
 mysql_close($db);
?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/7387814802408966350/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/7387814802408966350' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7387814802408966350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7387814802408966350'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/10/web3-php.html' title='WEBアプリケーションサーバの構築(3) PHP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-8382818365447880544</id><published>2012-09-27T12:00:00.000+09:00</published><updated>2012-10-19T11:29:09.103+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WEBアプリケーションサーバの構築(2) DBサーバ</title><content type='html'>１．php-mysqlモジュールをインストール&lt;br /&gt;
yum install php-mysql&lt;br /&gt;
service httpd stop&lt;br /&gt;
service httpd start&lt;br /&gt;
service mysqld stop&lt;br /&gt;
mysql_secure_installation&lt;br /&gt;
/etc/my.cnf
&lt;pre class=&quot;prettyprint&quot;&gt;
 [mysql] 
 default_character_set=utf8 

 [mysqld] 
 character_set-server=utf8 
 innodb_log_file_size=64M 
 innodb_buffer_pool_size=128M
&lt;/pre&gt;
service mysqld start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
２．MySQLにデータベース，テーブル作成&lt;br /&gt;
DB Name : arts&lt;br /&gt;
Table Name : sa2012&lt;br /&gt;
&lt;br /&gt;
$ mysql -u root -p&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
create database arts;
&lt;/pre&gt;
&lt;br /&gt;
$ mysql -u root -p sa&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
create table sa2012 ( id integer NOT NULL AUTO_INCREMENT PRIMARY KEY, num char(4), host_name char(20), ip_address char(15) );

show tables;
select * from sa2012;
&lt;/pre&gt;&lt;br /&gt;
※テーブルの各値はMySQL Workbench等から流し込みます．
&lt;br /&gt;
&lt;br /&gt;
３．DBに接続し，中身を表示するPHPファイルを作成&lt;br /&gt;
list.php
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;
&amp;lt;title&amp;gt;list&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php
 $db_user  = &amp;quot;[user name]&amp;quot;;
 $db_password = &amp;quot;[password]&amp;quot;;
 $db_name = &amp;quot;[database name]&amp;quot;;
 $db_host  = &amp;quot;localhost&amp;quot;;

 $db = mysql_connect($db_host,$db_user,$db_password);
 mysql_select_db($db_name,$db); 
 $str_sql = &amp;quot;select * from sa2012&amp;quot;;
 $rs = mysql_query($str_sql,$db);
 $num = mysql_num_fields($rs);

 print(&amp;quot;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th colspan=3&amp;gt;list&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);
 echo(&amp;quot;
 &amp;quot;);
 print(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);
 for ($i=0;$i&amp;lt;$num;$i++){
  print(&amp;quot;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.mysql_field_name($rs,$i).&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;);
 }
 print(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);
 while($row=mysql_fetch_array($rs)){
  echo(&amp;quot;
 &amp;quot;);
  print(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);
  for($j=0;$j&amp;lt;$num;$j++){
   print(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[$j].&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);
  }
  print(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);
 }

 print(&amp;quot;&amp;lt;/table&amp;gt;&amp;quot;);

 mysql_free_result($rs);
 mysql_close($db);
?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
４．パーミッションを755に変更&lt;br /&gt;
chmod 755 list.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
５．DBに接続し，id=1のものだけを表示するPHPファイルを作成&lt;br /&gt;
list2.php
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;
&amp;lt;title&amp;gt;list&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php
 $db_user  = &amp;quot;[user name]&amp;quot;;
 $db_password = &amp;quot;[password]&amp;quot;;
 $db_name = &amp;quot;[database name]&amp;quot;;
 $db_host  = &amp;quot;localhost&amp;quot;;

 $db = mysql_connect($db_host,$db_user,$db_password);
 mysql_select_db($db_name,$db); 
 $str_sql = &amp;quot;select * from sa2012 where id = 1&amp;quot;;
 $rs = mysql_query($str_sql,$db);
 $num = mysql_num_fields($rs);

 print(&amp;quot;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th colspan=3&amp;gt;list&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);
 echo(&amp;quot;
 &amp;quot;);
 print(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);
 for ($i=0;$i&amp;lt;$num;$i++){
  print(&amp;quot;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.mysql_field_name($rs,$i).&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;quot;);
 }
 print(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);
 while($row=mysql_fetch_array($rs)){
  echo(&amp;quot;
 &amp;quot;);
  print(&amp;quot;&amp;lt;tr&amp;gt;&amp;quot;);
  for($j=0;$j&amp;lt;$num;$j++){
   print(&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[$j].&amp;quot;&amp;lt;/td&amp;gt;&amp;quot;);
  }
  print(&amp;quot;&amp;lt;/tr&amp;gt;&amp;quot;);
 }

 print(&amp;quot;&amp;lt;/table&amp;gt;&amp;quot;);

 mysql_free_result($rs);
 mysql_close($db);
?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/8382818365447880544/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/8382818365447880544' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8382818365447880544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8382818365447880544'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/09/web2-db.html' title='WEBアプリケーションサーバの構築(2) DBサーバ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-1226213041509052375</id><published>2012-09-13T12:00:00.000+09:00</published><updated>2012-10-19T11:12:39.505+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WEBアプリケーションサーバの構築(1) WEBサーバ</title><content type='html'>１．まずはブラウザから自身のサーバにアクセスして状況確認&lt;br&gt;
http://10.2.5.***&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
２．PHPインストール&lt;br&gt;
yum install php&lt;br&gt;
/etc/php.ini
&lt;pre class=&quot;prettyprint&quot;&gt;
memory_limit = 16M ; Maximum amount of memory a script may consume
&lt;/pre&gt;
３．Webサーバ(httpd)インストール&lt;br&gt;
yum install httpd&lt;br&gt;
chkconfig httpd on&lt;br&gt;
service httpd start&lt;br&gt;
&lt;br&gt;
４．Firewall設定&lt;br&gt;
iptablesのルール初期化&lt;br&gt;
/sbin/iptables -F&lt;br&gt;
&lt;br&gt;
現在のルール確認&lt;br&gt;
iptables -L&lt;br&gt;
&lt;br&gt;
Firewallにルール追加&lt;br&gt;
/etc/sysconfig/iptables
&lt;pre class=&quot;prettyprint&quot;&gt;
 # Firewall configuration written by system-config-firewall
 # Manual customization of this file is not recommended.
 *filter
 :INPUT ACCEPT [0:0]
 :FORWARD ACCEPT [0:0]
 :OUTPUT ACCEPT [0:0]
 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 -A INPUT -p icmp -j ACCEPT
 -A INPUT -i lo -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
 -A INPUT -j REJECT --reject-with icmp-host-prohibited
 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
 COMMIT
&lt;/pre&gt;
&lt;br&gt;
service iptables restart&lt;br&gt;
&lt;br&gt;
５．動作確認&lt;br&gt;
ブラウザから以下のアドレスにアクセスし，テスト画面が表示されることを確認&lt;br&gt;
http://10.2.5.***</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/1226213041509052375/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/1226213041509052375' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/1226213041509052375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/1226213041509052375'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/09/web1-web.html' title='WEBアプリケーションサーバの構築(1) WEBサーバ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-7796481345996637625</id><published>2012-09-06T12:00:00.000+09:00</published><updated>2012-10-19T09:38:42.293+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>各ユーザーのhome以下にpublic_htmlを作成するツール</title><content type='html'>userDirMake.sh
&lt;pre class=&quot;prettyprint&quot;&gt;
#!/bin/bash

for user in `ls /home`
do
    id $user &gt; /dev/null 2&gt;&amp;1
    if [ $? -eq 0 ] &amp;&amp; [ ! -d /home/$user/public_html ]; then
        mkdir -p /home/$user/public_html
        chown $user. /home/$user/public_html
        chmod 711 /home/$user
        echo $user
    fi
done
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/7796481345996637625/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/7796481345996637625' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7796481345996637625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7796481345996637625'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/09/homepublichtml.html' title='各ユーザーのhome以下にpublic_htmlを作成するツール'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-4130860538015118961</id><published>2012-09-06T11:30:00.000+09:00</published><updated>2012-10-21T19:04:28.326+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>仮想環境(ESXi4)の準備</title><content type='html'>学生用仮想環境
&lt;table class=&#39;table1&#39; border=&quot;1&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.2&lt;/td&gt;&lt;td&gt;共有サーバ(１学期使用)&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.101&lt;/td&gt;&lt;td&gt;折笠&lt;/td&gt;&lt;td&gt;orikasa&lt;/td&gt;&lt;td&gt;00:50:56:00:01:01&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.102&lt;/td&gt;&lt;td&gt;金本&lt;/td&gt;&lt;td&gt;kanemoto&lt;/td&gt;&lt;td&gt;00:50:56:00:01:02&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.103&lt;/td&gt;&lt;td&gt;鈴木&lt;/td&gt;&lt;td&gt;suzuki&lt;/td&gt;&lt;td&gt;00:50:56:00:01:03&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.104&lt;/td&gt;&lt;td&gt;西崎&lt;/td&gt;&lt;td&gt;nishizaki&lt;/td&gt;&lt;td&gt;00:50:56:00:01:04&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.105&lt;/td&gt;&lt;td&gt;西村&lt;/td&gt;&lt;td&gt;nishimura&lt;/td&gt;&lt;td&gt;00:50:56:00:01:05&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.106&lt;/td&gt;&lt;td&gt;マナハン&lt;/td&gt;&lt;td&gt;manahan&lt;/td&gt;&lt;td&gt;00:50:56:00:01:06&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.107&lt;/td&gt;&lt;td&gt;荒井&lt;/td&gt;&lt;td&gt;arai&lt;/td&gt;&lt;td&gt;00:50:56:00:01:07&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.108&lt;/td&gt;&lt;td&gt;小沼&lt;/td&gt;&lt;td&gt;onuma&lt;/td&gt;&lt;td&gt;00:50:56:00:01:08&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.109&lt;/td&gt;&lt;td&gt;小谷田&lt;/td&gt;&lt;td&gt;koyata&lt;/td&gt;&lt;td&gt;00:50:56:00:01:09&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.110&lt;/td&gt;&lt;td&gt;城田&lt;/td&gt;&lt;td&gt;shirota&lt;/td&gt;&lt;td&gt;00:50:56:00:01:10&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.111&lt;/td&gt;&lt;td&gt;中山&lt;/td&gt;&lt;td&gt;nakayama&lt;/td&gt;&lt;td&gt;00:50:56:00:01:11&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.112&lt;/td&gt;&lt;td&gt;萩原&lt;/td&gt;&lt;td&gt;hagiwara&lt;/td&gt;&lt;td&gt;00:50:56:00:01:12&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.113&lt;/td&gt;&lt;td&gt;花山&lt;/td&gt;&lt;td&gt;hanayama&lt;/td&gt;&lt;td&gt;00:50:56:00:01:13&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.114&lt;/td&gt;&lt;td&gt;樋口&lt;/td&gt;&lt;td&gt;higuchi&lt;/td&gt;&lt;td&gt;00:50:56:00:01:14&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.115&lt;/td&gt;&lt;td&gt;船谷&lt;/td&gt;&lt;td&gt;funaya&lt;/td&gt;&lt;td&gt;00:50:56:00:01:15&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.116&lt;/td&gt;&lt;td&gt;星野&lt;/td&gt;&lt;td&gt;hoshino&lt;/td&gt;&lt;td&gt;00:50:56:00:01:16&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.117&lt;/td&gt;&lt;td&gt;間宮&lt;/td&gt;&lt;td&gt;mamiya&lt;/td&gt;&lt;td&gt;00:50:56:00:01:17&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10.2.5.118&lt;/td&gt;&lt;td&gt;佐藤&lt;/td&gt;&lt;td&gt;mgrsato&lt;/td&gt;&lt;td&gt;00:50:56:00:01:18&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br&gt;
&lt;br&gt;
１．仮想イメージコピー後に，IPアドレス修正
&lt;br&gt;
(IPアドレスをコピー元の値から、各学生用のIPアドレスに変更する)
&lt;br&gt;
&lt;br&gt;
/etc/udev/rules.d/70-persistent-net.rules
&lt;pre class=&quot;prettyprint&quot;&gt;
 (最後尾のPCI deviceのみ残す)
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
/etc/sysconfig/network-scripts/ifcfg-eth0
&lt;pre class=&quot;prettyprint&quot;&gt;
 DEVICE=eth0
 BOOTPROTO=none
 ONBOOT=yes
 IPADDR=10.2.5.***
 NETMASK=255.0.0.0
 GATEWAY=10.1.0.1
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;
２．VMware Toolsのインストール&lt;br&gt;
mkdir /mnt/cdrom&lt;br&gt;
mount /dev/cdrom /mnt/cdrom&lt;br&gt;
cd /mnt/cdrom&lt;br&gt;
cp VMwareTools-XXX.tar.gz /tmp&lt;br&gt;
cd /tmp&lt;br&gt;
tar zxvf VMwareTools-XXX.tar.gz&lt;br&gt;
cd vmware-tools-distrib&lt;br&gt;
./vmware-install.pl&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
３．DNS設定&lt;br&gt;
/etc/resolv.conf
&lt;pre class=&quot;prettyprint&quot;&gt;
 nameserver 8.8.8.8
&lt;/pre&gt;
service network restart&lt;br&gt;
yum update&lt;br&gt;
yum install perl&lt;br&gt;
yum install yum-fastestmirror&lt;br&gt;
yum install yum-utils&lt;br&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/4130860538015118961/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/4130860538015118961' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4130860538015118961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/4130860538015118961'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/09/esxi4.html' title='仮想環境(ESXi4)の準備'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-5028364363766963837</id><published>2012-06-22T10:00:00.000+09:00</published><updated>2012-06-22T10:00:01.821+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]GUIアプリケーション"/><title type='text'>DBから値を取得してFLASH上で利用する方法</title><content type='html'>&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;
&lt;object data=&quot;http://www14026u.sakura.ne.jp/ma/2011/9/20111021.swf&quot; height=&quot;240&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;320&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;20111021.swf&quot; /&gt;


&lt;param name=&quot;8,0,0,0&quot; value=&quot;value&quot; /&gt;


&lt;/object&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;20111021.swf&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
HTMLファイルに値を埋め込み，URL引数渡しする方法では，他ユーザーとリアルタイムに値を共有することができない．&lt;br /&gt;
そこで今後は，データベース（以下DB）に全ユーザーの値を集約し，その値をSWFで利用する事とする．&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
今回はFlashからDBに直接接続しSQLを発行する方法ではなく，FlashからDBとの仲介役となるPHPファイルに接続し，DBに問い合わせた結果をFlashがXML形式で受け取る方法について説明する．&lt;br /&gt;
&lt;br /&gt;
１．ブラウザを用いて以下の取得先URLにアクセスし，自身のユーザー名／パスワードを用いて値が取得できるか確認．&lt;br /&gt;
（取得されるデータはXML形式のため，ページのソースを表示で内容確認）&lt;br /&gt;
取得先URL&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;http://www14026u.sakura.ne.jp/ma/2011/9/status.php?user_name=&quot;&lt;b&gt;ユーザー名&lt;/b&gt;&quot;&amp;amp;user_pass=&quot;&lt;b&gt;パスワード&lt;/b&gt;&quot;
&lt;/pre&gt;
&lt;br /&gt;
２．自身のユーザー名／パスワードを用いて固有の値（ユーザー毎のmoneyとitemの値）を取得できることが確認できたら，現在作成しているFlaファイルに１で取得出来るmoneyの値が反映されるように修正．&lt;br /&gt;
Flashの中でユーザー名・パスワードを用いてサーバー上のXMLを取得し，その中に含まれるmoney,kanaの値をステージ上に表示する．&lt;br /&gt;
&lt;br /&gt;
ActionScript(windowレイヤー) &lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;//status_mc.name = _root.name;
//status_mc.money = _root.money;

var db_username = &quot;ユーザー名&quot;;
var db_password = &quot;パスワード&quot;;
status_xml = new XML();
status_xml.onLoad = userStatus;
status_xml.load(&quot;http://www14026u.sakura.ne.jp/ma/2011/9/status.php?user_name=&#39;&quot;+db_username+&quot;&#39;&amp;amp;user_pass=&#39;&quot;+db_password+&quot;&#39;&quot;);
status_xml.ignoreWhite = true;
function userStatus(success) {
 if (success == true) {
  status_mc.money = status_xml.firstChild.firstChild.firstChild.firstChild.nodeValue;
  status_mc.name = status_xml.firstChild.firstChild.firstChild.nextSibling.nextSibling.firstChild.nodeValue;

  //debug
  trace(status_xml.nodeValue);
  trace(status_xml.firstChild.nodeValue);
  trace(status_xml.firstChild.firstChild.nodeValue);
  trace(status_xml.firstChild.firstChild.firstChild.nodeValue);
  trace(status_xml.firstChild.firstChild.firstChild.firstChild.nodeValue);
  trace(status_xml.firstChild.firstChild.firstChild.nextSibling.firstChild.nodeValue);
  trace(status_xml.firstChild.firstChild.firstChild.nextSibling.nextSibling.firstChild.nodeValue);
 }
}

status_mc._visible = false;
window_status = 1;
var key_obj:Object = new Object();
key_obj.onKeyDown = function():Void  {
 var code = Key.getCode();
 if (code == Key.SPACE) {
  if (window_status == 0) {
   status_mc._visible = false;
   window_status = 1;
  } else if (window_status == 1) {
   status_mc._visible = true;
   window_status = 0;
  }
 }
};
Key.addListener(key_obj);
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
（参考）DBに接続し，ユーザーのstatusを返すPHP&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;?php
 $db_user  = &quot;ユーザー名&quot;;
 $db_password = &quot;パスワード&quot;;
 $db_name = &quot;DB名&quot;;
 $db_host  = &quot;接続先サーバ名&quot;;

//create xml
    header(&#39;Content-type: text/xml; charset=utf-8&#39;);
    echo &#39;&amp;lt;?xml version=&quot;1.0&quot;?&amp;gt;&amp;lt;ma&amp;gt;&#39;;

 $user_name = null;
 $user_pass = null;

 if(isset($_GET[&#39;user_name&#39;])) {
  $user_name = $_GET[&#39;user_name&#39;];
  $user_pass = $_GET[&#39;user_pass&#39;];

  $con = mysql_connect($db_host,$db_user,$db_password) or die(&quot;error!&quot;);
  mysql_select_db($db_name,$con) or die(&quot;DB is not exist&quot;);
  $strsql = &quot;SET CHARACTER SET UTF8&quot;;
  mysql_query($strsql,$con);
  $strsql = &quot;SELECT money, item FROM 2011_users WHERE name = $user_name AND pass = $user_pass;&quot;;
  $res = mysql_query($strsql,$con);

  while ($item = mysql_fetch_array($res)) {
   print &quot;&amp;lt;user_status&amp;gt;&amp;lt;money&amp;gt;&quot;.$item[0].&quot;&amp;lt;/money&amp;gt;&amp;lt;item&amp;gt;&quot;.$item[1].&quot;&amp;lt;/item&amp;gt;&amp;lt;/user_status&amp;gt;&quot;;
  }
  mysql_close($con);
}

    echo &#39;&amp;lt;/ma&amp;gt;&#39;; 
?&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www14026u.sakura.ne.jp/ma/2011/9/20111021.fla&quot;&gt;ダウンロード1&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/5028364363766963837/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/5028364363766963837' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/5028364363766963837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/5028364363766963837'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/06/dbflash.html' title='DBから値を取得してFLASH上で利用する方法'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-7759021270309694381</id><published>2012-06-21T15:38:00.001+09:00</published><updated>2012-06-21T16:12:49.288+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WebAPIの利用(6)</title><content type='html'>WebAPIの利用(5)に，情報ウインドウ表示機能を追加する．&lt;br /&gt;
現状では情報ウインドウに特定の文字列を表示しているのみだが，ユーザーから受け取った場所を示す文字列「$word」を活用して，その場所固有の情報を表示するように各自工夫する事．&lt;br /&gt;
例)WebAPIの利用(2)を応用し，その地点の天気，最高/最低気温を表示&lt;br /&gt;
&lt;br /&gt;
map_xmlParse2.php&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;?php
$word = htmlspecialchars($_POST[&#39;word&#39;]);
$sensor = htmlspecialchars($_POST[&#39;sensor&#39;]);
$url = &amp;quot;http://maps.google.com/maps/api/geocode/xml&amp;quot;;
$url .= &amp;quot;?address=&amp;quot;.$word.&amp;quot;&amp;amp;sensor=&amp;quot;.$sensor;
$article = simplexml_load_file($url);

$lat = $article-&amp;gt;result-&amp;gt;geometry-&amp;gt;location-&amp;gt;lat;
$lng = $article-&amp;gt;result-&amp;gt;geometry-&amp;gt;location-&amp;gt;lng;

print&amp;lt;&amp;lt;&amp;lt;EOF
&amp;lt;html&amp;gt;
 &amp;lt;head&amp;gt;
  &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;initial-scale=1.0, user-scalable=no&amp;quot; /&amp;gt;
  &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;/&amp;gt;
  &amp;lt;title&amp;gt;Google Geocoding and Maps JavaScript API Example&amp;lt;/title&amp;gt;
  &amp;lt;link href=&amp;quot;http://code.google.com/apis/maps/documentation/javascript/examples/default.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text
  /css&amp;quot; /&amp;gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://maps.google.com/maps/api/js?v=3.3&amp;amp;sensor=true&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
  function initialize() {
   var myLatlng = new google.maps.LatLng($lat, $lng);

   var myOptions = {
    zoom: 15,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
   };

   var map = new google.maps.Map(document.getElementById(&amp;quot;map_canvas&amp;quot;), myOptions);

   var marker = new google.maps.Marker({
    position: myLatlng,
    map: map,
    title: &#39;$word&#39;
   });

   var contentStr = &#39;test&#39;;

   var infowindow = new google.maps.InfoWindow({
    content: contentStr,
    size: new google.maps.Size(50, 50)
   });

   google.maps.event.addListener(marker, &#39;click&#39;, function() {
   infowindow.open(map,marker)
   });
  }
  &amp;lt;/script&amp;gt;
 &amp;lt;/head&amp;gt;
 &amp;lt;body onload=&amp;quot;initialize()&amp;quot;&amp;gt;
  &amp;lt;div id=&amp;quot;map_canvas&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
EOF;
?&amp;gt;
&lt;/pre&gt;

&lt;br /&gt;
情報ウインドウに天気を表示する例&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;
&amp;lt;?php
$word = htmlspecialchars($_POST[&#39;word&#39;]);
$sensor = htmlspecialchars($_POST[&#39;sensor&#39;]);
$url = &amp;quot;http://maps.google.com/maps/api/geocode/xml&amp;quot;;
$url .= &amp;quot;?address=&amp;quot;.$word.&amp;quot;&amp;amp;sensor=&amp;quot;.$sensor;
$article = simplexml_load_file($url);

$lat = $article-&amp;gt;result-&amp;gt;geometry-&amp;gt;location-&amp;gt;lat;
$lng = $article-&amp;gt;result-&amp;gt;geometry-&amp;gt;location-&amp;gt;lng;

// get weather
$url2 = &amp;quot;http://www.google.com/ig/api?weather=&amp;quot;.$word;
$xml = simplexml_load_file($url2);

$city = $xml-&amp;gt;weather-&amp;gt;forecast_information-&amp;gt;city-&amp;gt;attributes();
$forecast_date = $xml-&amp;gt;weather-&amp;gt;forecast_information-&amp;gt;forecast_date-&amp;gt;attributes();
$unit_system = $xml-&amp;gt;weather-&amp;gt;forecast_information-&amp;gt;unit_system-&amp;gt;attributes();

$current_condition = $xml-&amp;gt;weather-&amp;gt;current_conditions-&amp;gt;condition-&amp;gt;attributes();
$temp_c = $xml-&amp;gt;weather-&amp;gt;current_conditions-&amp;gt;temp_c-&amp;gt;attributes();
$humidity = $xml-&amp;gt;weather-&amp;gt;current_conditions-&amp;gt;humidity-&amp;gt;attributes();
$current_icon = $xml-&amp;gt;weather-&amp;gt;current_conditions-&amp;gt;icon-&amp;gt;attributes();
$wind_condition = $xml-&amp;gt;weather-&amp;gt;current_conditions-&amp;gt;wind_condition-&amp;gt;attributes();

print&amp;lt;&amp;lt;&amp;lt;EOF
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
 &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;initial-scale=1.0, user-scalable=no&amp;quot; /&amp;gt;
 &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;/&amp;gt;
 &amp;lt;title&amp;gt;Google Geocoding and Maps JavaScript API Example&amp;lt;/title&amp;gt;
 &amp;lt;link href=&amp;quot;http://code.google.com/apis/maps/documentation/javascript/examples/default.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text
 /css&amp;quot; /&amp;gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://maps.google.com/maps/api/js?v=3.3&amp;amp;sensor=true&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
 function initialize() {
  var myLatlng = new google.maps.LatLng($lat, $lng);

  var myOptions = {
   zoom: 15,
   center: myLatlng,
   mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  var map = new google.maps.Map(document.getElementById(&amp;quot;map_canvas&amp;quot;), myOptions);

  var marker = new google.maps.Marker({
   position: myLatlng,
   map: map,
   title: &#39;$word&#39;
  });

  var contentStr = &#39;$city($forecast_date)[$unit_system]&amp;lt;br /&amp;gt;現在の状況：$current_condition&amp;lt;br /&amp;gt;気温：$temp_c&amp;lt;br /&amp;gt;湿度：$humidity&amp;lt;br /&amp;gt;&amp;lt;img src=&amp;quot;http://www.google.com$current_icon&amp;quot;&amp;gt;&amp;lt;br /&amp;gt;風向：$wind_condition&#39;;

  var infowindow = new google.maps.InfoWindow({
   content: contentStr,
   size: new google.maps.Size(50, 50)
  });

  google.maps.event.addListener(marker, &#39;click&#39;, function() {
   infowindow.open(map,marker)
  });
 }
 &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body onload=&amp;quot;initialize()&amp;quot;&amp;gt;
 &amp;lt;div id=&amp;quot;map_canvas&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
EOF;
?&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/7759021270309694381/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/7759021270309694381' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7759021270309694381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7759021270309694381'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/06/webapi6.html' title='WebAPIの利用(6)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-7476169575207047116</id><published>2012-06-21T11:00:00.000+09:00</published><updated>2012-06-21T11:00:01.690+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>WebAPIの利用(5)</title><content type='html'>WebAPIの利用(4)を更に発展させ，ユーザーが入力した任意の文字列から座標を検索し，地図を表示する．

&lt;br /&gt;
&lt;br /&gt;
１．ユーザーが文字列を入力する画面(map_form.html)を用意．&lt;br /&gt;
２．画面に配置された送信ボタンを押すことで，postメソッドにより文字列を送信．&lt;br /&gt;
３．送信された文字列をphpファイル(map_xmlParse2.php)で受け取り．&lt;br /&gt;
４．受け取った文字列を用いて，マッチする座標を検索&lt;br /&gt;
５．座標を使って地図を表示．&lt;br /&gt;
&lt;br /&gt;
表示例
&lt;br /&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;200&quot; src=&quot;http://www14026u.sakura.ne.jp/sa/2011/map_form.html&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
&lt;a href=&quot;http://www14026u.sakura.ne.jp/sa/2011/map_form.html&quot;&gt;LINK&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
map_form.html
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
 &amp;lt;title&amp;gt;form sample&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;form action=&quot;map_xmlParse2.php&quot; method=&quot;post&quot;&amp;gt;
  座標を調べたい文字列 : &amp;lt;input type=&quot;text&quot; name=&quot;word&quot; /&amp;gt;
  &amp;lt;input type=&quot;hidden&quot; name=&quot;sensor&quot; value=&quot;true&quot; /&amp;gt;
  &amp;lt;input type=&quot;submit&quot; /&amp;gt;
 &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
map_xmlParse2.php
&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;?php
 $word = htmlspecialchars($_POST[&#39;word&#39;]);
 $sensor = htmlspecialchars($_POST[&#39;sensor&#39;]);
 $url = &quot;http://maps.google.com/maps/api/geocode/xml&quot;;
 $url .= &quot;?address=&quot;.$word.&quot;&amp;amp;sensor=&quot;.$sensor;
 $article = simplexml_load_file($url);

 $lat = $article-&amp;gt;result-&amp;gt;geometry-&amp;gt;location-&amp;gt;lat;
 $lng = $article-&amp;gt;result-&amp;gt;geometry-&amp;gt;location-&amp;gt;lng;

print&amp;lt;&amp;lt;&amp;lt;EOF
 &amp;lt;html&amp;gt;
 &amp;lt;head&amp;gt;
 &amp;lt;meta name=&quot;viewport&quot; content=&quot;initial-scale=1.0, user-scalable=no&quot; /&amp;gt;
 &amp;lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=UTF-8&quot;/&amp;gt;
 &amp;lt;title&amp;gt;Google Geocoding and Maps JavaScript API Example&amp;lt;/title&amp;gt;
 &amp;lt;link href=&quot;http://code.google.com/apis/maps/documentation/javascript/examples/default.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;
 &amp;lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.googleapis.com/maps/api/js?sensor=false&quot;&amp;gt;&amp;lt;/script&amp;gt;
 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
   function initialize() {
     var myLatlng = new google.maps.LatLng(
EOF;
 echo $lat;
 echo &quot;, &quot;;
 echo $lng;
print&amp;lt;&amp;lt;&amp;lt;EOF
     );

     var myOptions = {
       zoom: 15,
       center: myLatlng,
       mapTypeId: google.maps.MapTypeId.ROADMAP
     }
     var map = new google.maps.Map(document.getElementById(&quot;map_canvas&quot;), myOptions);

     var marker = new google.maps.Marker({
       position: myLatlng,
       map: map,
       title:&quot;
EOF;
 echo $word;
print&amp;lt;&amp;lt;&amp;lt;EOF
       &quot;
     });
   }
 &amp;lt;/script&amp;gt;
 &amp;lt;/head&amp;gt;
 &amp;lt;body onload=&quot;initialize()&quot;&amp;gt;
   &amp;lt;div id=&quot;map_canvas&quot;&amp;gt;&amp;lt;/div&amp;gt;
 &amp;lt;/body&amp;gt;
 &amp;lt;/html&amp;gt;
EOF;
?&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/7476169575207047116/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/7476169575207047116' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7476169575207047116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/7476169575207047116'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/06/webapi5.html' title='WebAPIの利用(5)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749062382045887602.post-8483935250413839910</id><published>2012-06-21T10:00:00.000+09:00</published><updated>2012-06-21T10:00:01.725+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="[2012]サーバアーキテクチャ"/><title type='text'>Javascriptについて</title><content type='html'>まずはHello, world．&lt;br /&gt;
&lt;br /&gt;
js_1.html&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;html&amp;gt;
 &amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;Javascript&amp;lt;/title&amp;gt;
 &amp;lt;/head&amp;gt;
 &amp;lt;body&amp;gt;
  &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
   &amp;lt;!--
   document.write(&quot;Hello World&quot;);
   // --&amp;gt;
  &amp;lt;/script&amp;gt;
 &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Javascriptにおける変数の扱いについて．
&lt;br /&gt;
※Javascriptでは変数を明示的に宣言する場合、var を用います．&lt;br /&gt;
※Javascriptでは変数名や関数名などの大文字と小文字は別の文字として扱われます．&lt;br /&gt;
&lt;br /&gt;
js_2.html&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;html&amp;gt;
 &amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;サンプル&amp;lt;/title&amp;gt;
 &amp;lt;/head&amp;gt;
 &amp;lt;body&amp;gt;
  &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
   &amp;lt;!--
   str = &quot;small letter&quot;;
   STR = &quot;CAPITAL LETTER&quot;;
   document.write(str + STR);
   // --&amp;gt;
  &amp;lt;/script&amp;gt;
 &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
PHPとJavascriptを組み合わせて利用．
&lt;br /&gt;
※PHPはサーバーサイドで実行され，Javascriptはクライアントサイドで実行される事に注意．&lt;br /&gt;
&lt;br /&gt;
js_3.php&lt;br /&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&amp;lt;?php
$str = &quot;Hello World&quot;;

print&amp;lt;&amp;lt;&amp;lt;EOL
&amp;lt;html&amp;gt;
 &amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;Javascript&amp;lt;/title&amp;gt;
 &amp;lt;/head&amp;gt;
 &amp;lt;body&amp;gt;
  &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
   &amp;lt;!--
   document.write($str);
   // --&amp;gt;
  &amp;lt;/script&amp;gt;
 &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
EOL;

?&amp;gt;
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mgrsato.blogspot.com/feeds/8483935250413839910/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/2749062382045887602/8483935250413839910' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8483935250413839910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749062382045887602/posts/default/8483935250413839910'/><link rel='alternate' type='text/html' href='http://mgrsato.blogspot.com/2012/06/javascript.html' title='Javascriptについて'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>