2011年9月30日金曜日

ex7 HTMLからSWFへの引数渡し


20110930.swf

1.FLAファイルにwindowレイヤー追加
ActionScript(windowレイヤー)
user = _root.user;
money = _root.money;

2.windowレイヤーにダイナミックテキストを2つ設置
(それぞれ変数名を「user」「money」とする)

3.SWFファイルをパブリッシュ

4.SWFと同時に生成されたHTMLファイルを編集(修正箇所:2)
修正1
<param name="movie" value="20110930.swf" />
→
<param name="movie" value="20110930.swf?user=sato&money=100" />

修正2
<embed src="20110930.swf" quality="high" bgcolor="#ffffff" width="320" height="240" name="20110930" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
→
<embed src="20110930.swf?user=sato&money=100" quality="high" bgcolor="#ffffff" width="320" height="240" name="20110930" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

5.SWFとHTMLをアップロードし,動作確認

ダウンロード1
ダウンロード2

2011年9月29日木曜日

外部APIを利用したWEBサービスのサンプル(5)

Google Mapsのオーバーレイ機能を利用して,以下の要件を満たすHTMLファイルを作成せよ.

参考サイト
Google Maps JavaScript API V3 オーバーレイ

要件
1. 地図上の学校の場所に,アイコンを表示 → マーカー
2. アイコンをクリックした際に吹き出しを表示し,吹き出し内に学校名と電話番号を表示 → 情報ウィンドウ
3. 駅から学校までの通学路を線として表示 → ポリライン
表示例

LINK

overlays.html
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Marker Simple</title>
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  function initialize() {
    var myLatlng = new google.maps.LatLng(35.4649755,139.6162225);
    var mySchool = new google.maps.LatLng(35.463763,139.60973);
    var myStation = new google.maps.LatLng(35.466188, 139.622715);

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

    var marker = new google.maps.Marker({
      position: mySchool,
      map: map,
      title:"school"
    });

  var route = [
    new google.maps.LatLng(35.466188, 139.622715),
    new google.maps.LatLng(35.463458,139.615631),
    new google.maps.LatLng(35.465424,139.612021),
    new google.maps.LatLng(35.463283,139.610087),
    new google.maps.LatLng(35.463763,139.60973)
  ];

  var routePath = new google.maps.Polyline({
    path: route,
    strokeColor: "#FF0000",
    strokeOpacity: 1.0,
    strokeWeight: 2
  });

  routePath.setMap(map);

  }
</script>
</head>
<body onload="initialize()">
  <div id="map_canvas"></div>
</body>
</html>

外部APIを利用したWEBサービスのサンプル(4)

外部APIを利用して,地名や固有名詞等の単語(名称)から座標を調べる.

参考サイト
Google Geocoding API

API書式
http://maps.google.com/maps/api/geocode/xml?address="(名称)"&sensor=true

LINK

外部APIを利用したWEBサービスのサンプル(3)

外部APIを利用して,地図上にデータのマッピングを行う.

参考サイト
Google Map JavaScript API(V3)

手順
1. script タグを使用して Maps API JavaScript を読み込み
2. 「map_canvas」という名前の div 要素を作成して、地図を保管
3. 多数の地図のプロパティを持つ JavaScript オブジェクトリテラルを作成
4. 「map」オブジェクトを作成する JavaScript 関数を記述
5. map オブジェクトを body タブの onload·イベントから初期化
表示例

LINK

map.html
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
  function initialize() {
    var latlng = new google.maps.LatLng(35.466188, 139.622715);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }

</script>
</head>
<body onload="initialize()">
  <div id="map_canvas" style="width:100%; height:100%"></div>
</body>
</html>

2011年9月26日月曜日

Excel VBA課題(5)

第7章ワイン販売管理(完成).xlsをベースに,販売データの入力を終了する際に,都度「end」という文字列を入力しなくても済むようにプログラムを変更せよ.

方針:
1回分の販売データの入力が終わったタイミングでデータ入力の終了・継続を確認するダイアログを表示し,その指示に従って動作を変更するようにする.

場所:
標準モジュール→販売リスト→Sub 入力()

sample code
Sub 入力()
    Dim hiduke As String
    ActiveWindow.NewWindow
    ActiveWindow.NewWindow
    Windows.Arrange xlArrangeStyleTiled
    Windows("第7章ワイン販売管理(完成).xls:2").Activate
    Worksheets("得意先リスト").Select
    Windows("第7章ワイン販売管理(完成).xls:1").Activate
    Worksheets("商品リスト").Select
    Windows("第7章ワイン販売管理(完成).xls:3").Activate
    If Range("C6").Value = "" Then
        Range("C6").Select
    Else
        Range("C5").Select
        Selection.End(xlDown).Select
        ActiveCell.Offset(1, 0).Select
    End If
    
    Dim flag As Integer
    flag = 0
    
    Do While ActiveCell.Offset(0, -1).Value <> ""
        hiduke = InputBox("日付を入力してください")
        If hiduke = "" Then
            Exit Do
        Else
            ActiveCell.FormulaR1C1 = hiduke
            ActiveCell.Offset(0, 1).Range("A1").Select
            ActiveCell.FormulaR1C1 = InputBox("得意先コードを入力してください")
            ActiveCell.Offset(0, 2).Range("A1").Select
            ActiveCell.FormulaR1C1 = InputBox("商品コードを入力してください")
            ActiveCell.Offset(0, 4).Range("A1").Select
            ActiveCell.FormulaR1C1 = InputBox("数量を入力してください")
            ActiveCell.Offset(1, -7).Range("A1").Select
        End If
        
        flag = MsgBox("入力を終了しますか?", vbYesNo + vbQuestion, "終了確認")
        If flag = "6" Then
            Exit Do
        End If
    
    Loop
    Windows("第7章ワイン販売管理(完成).xls:2").Activate
    ActiveWindow.Close
    Windows("第7章ワイン販売管理(完成).xls:1").Activate
    ActiveWindow.Close
    ActiveWindow.WindowState = xlMaximized
End Sub

2011年9月22日木曜日

PHP(5) 外部APIとの連携

外部APIを利用したWEBサービスのサンプル2とPHPを組み合わせて,PHPで変数に対して事前に設定した値を使って,グラフを作成する.

表示例

LINK

index5.php
<?php
// 値の設定
	$text0 = 'うれしい';
	$value0 = '70';
	$text1 = 'かなしい';
	$value1 = '20';
	$text2 = 'さみしい';
	$value2 = '10';
?>

<html>
<head>
<title>title</title>
</head>
<body>

<iframe frameborder=0 src="http://graph.heartrails.com/api/?width=400&height=300&text0=
<?php echo $text0; ?>
&value0=
<?php echo $value0; ?>
&text1=
<?php echo $text1; ?>
&value1=
<?php echo $value1; ?>
&text2=
<?php echo $text2; ?>
&value2=
<?php echo $value2; ?>
"></iframe>

</body>
</html>
→作成したファイルを,必ずサーバに残しておくこと.

PHP(4) HTMLの出力

PHPを用いてHTMLを出力する.
※PHPの処理を行う部分と,HTMLを出力する部分を分けて記述するとわかりやすくなります.

表示例

LINK

index4.php
<?php
// 値の設定
	$value = 'Hello, world';
?>

<html>
<head>
<title>title</title>
</head>
<body>

<?php echo $value; ?>

</body>
</html>

PHP(3) 文字列の扱い

PHPにおける文字の扱いと結合について.

文字列の結合

表示例

LINK

index3_1.php
<?php
        $word1 = 'Hello, ';
        $word2 = 'world';
        $str1 = $word1 . $word2;

        print($str1);
?>

文字列の追記

表示例

LINK

index3_2.php
<?php
        $word1 = 'Hello, ';
        $word2 = 'world';
        $str2 = $word1;
        $str2 .= $word2;

        print($str2);
?>

PHP(2) 変数

PHPにおける変数の扱いについて. 

※PHPでは変数名の先頭に「$」をつけることで,変数であることを示します.
※PHPでは変数のデータ型を宣言する必要がありません.

表示例

LINK

index2.php
<?php
	$a = 1;
	$b = 10;
	$c = $a + $b;
	print($c);
?>

PHP(1) PHPとは?

まずはPHPに慣れるため,PHPを用いて現在の日付を表示するHTMLを作成する.

cd ~
cd public_html
mkdir php
cd php
vi index.php

表示例

LINK

index.php
<html>
<head>
<title>PHP 1</title>
</head>
<body>

TODAY : <?php echo date("Y/m/d"); ?>

</body>
</html>

chmod 755 index.php

※ブラウザからhttp://10.5.1.240/~(username)/php/index.phpを表示してみてください.

外部APIを利用したWEBサービスのサンプル(2)

外部APIを利用して,データの可視化を行う.

参考サイト
HeartRails Graph Web API

API書式
http://graph.heartrails.com/api/?width=幅&height=高さ&text0=項目1の文章&value0=項目1の値(%)&text1=項目2の文章&value1=項目2の値(%)&text2=項目3の文章&value2=項目3の値(%)
表示例


ソースコード
<html>
<head>
<title>title</title>
</head>
<body>

<iframe frameborder=0 src="http://graph.heartrails.com/api/?width=400&height=300&text0=うれしい&value0=70&text1=かなしい&value1=20&text2=さみしい&value2=10></iframe>

</body>
</html>

外部APIを利用したWEBサービスのサンプル(1)

外部APIを利用して,データの可視化を行う.

参考サイト
JSChart

API書式
<script type="text/javascript" charset="utf-8" src="http://www.jschart.jp/t/?gt=グラフタイプ&k=ライセンス番号&gd[プロット名]=カンマ区切りデータ&w=横サイズ&h=縦サイズ">
</script>
表示例

LINK

chart.html
<html>
<head>
<title>title</title>
</head>
<body>
<script type="text/javascript" charset="utf-8" src="http://www.jschart.jp/t/?gt=1&gd[plotName]=1,2,3&w=400&h=300">
</script>
</body>
</html>

2011年9月20日火曜日

Excel VBA課題(4)

第7章ワイン販売管理(完成).xlsをベースに,商品リストの絞り込み検索をかける際の方法を,対話的な方法(ユーザーに文字を入力させない)に変更せよ.

sample code
Sub 色検索()
    Dim iro As String
    Dim flag As Integer
    flag = 0
    flag = MsgBox("検索したいワインは赤ですか?", vbYesNo + vbQuestion, "ワイン検索")
    If flag = "6" Then
        iro = "赤"
        Range("B5").Select
        Selection.AutoFilter Field:=3, Criteria1:=iro
    Else
        flag = MsgBox("検索したいワインは白ですか?", vbYesNo + vbQuestion, "ワイン検索")
        If flag = 6 Then
            iro = "白"
            Range("B5").Select
            Selection.AutoFilter Field:=3, Criteria1:=iro
        Else
            flag = MsgBox("検索したいワインはロゼですか?", vbYesNo + vbQuestion, "ワイン検索")
            If flag = 6 Then
                iro = "ロゼ"
                Range("B5").Select
                Selection.AutoFilter Field:=3, Criteria1:=iro
            Else
                MsgBox "赤、白、ロゼのいずれかを選択してください", vbOKOnly + vbExclamation
            End If
        End If
    End If
End Sub

2011年9月15日木曜日

外部APIを利用したWEBサービスの提案

マッシュアップ(*1)を用いて,各自独自のWEBサービスを構築する.
構築先は授業用共有サーバ(10.5.1.240)のユーザーディレクトリ以下とする.

要件
外部APIを3つ以上組み合わせること.
授業用共有サーバで動作するもの.


参考サイト
google APIs (*2)
Yahoo!デベロッパーネットワーク
Mashup Awards 7

(*1)各社が提供しているWEBサービスを利用する為の外部APIを組み合わせ,1つのWEBサービスに仕立てる手法の事.
(*2)自分が利用しているGoogle APIを一覧表示するには,google API Consoleを利用すると便利.

2011年9月13日火曜日

Excel VBA課題(3)

20110912のファイルをベースとして,想定されるエラーに対する処理(5箇所)を追加する.
例) 商品ID(会員ID)が空欄の場合,商品ID(会員ID)の入力を促すメッセージを表示し,処理を中断する.

sample code
Sub point()
    '1.ワークシート「入力」に入力された文字列を取得(エラー処理あり)
    Dim errorFlag As Integer
    errorFlag = 0
    
    Dim syouhin As Integer
    If IsNumeric(Worksheets("入力").Range("B1").Text) Then
        syouhin = Worksheets("入力").Range("B1").Value
    ElseIf Worksheets("入力").Range("B1").Text = "" Then
        MsgBox "商品IDが空欄です.商品IDを入力してください."
        errorFlag = 1
    Else
        MsgBox "正しい商品IDを入力してください."
        errorFlag = 1
    End If
    
    Dim kaiin As Integer
    If IsNumeric(Worksheets("入力").Range("B2").Text) Then
        kaiin = Worksheets("入力").Range("B2").Value
    ElseIf Worksheets("入力").Range("B2").Text = "" Then
        MsgBox "会員IDが空欄です.会員IDを入力してください."
        errorFlag = 1
    Else
        MsgBox "正しい会員IDを入力してください"
        errorFlag = 1
    End If
    
    If errorFlag = 0 Then
        '2.取得した「商品ID」から「価格」と「ポイント付与率」を取得
        Dim kakaku As Long
        Dim fuyoritsu As Integer
        
        Worksheets("商品").Select
        Worksheets("商品").Range("A2").Select
        
        Do While ActiveCell.Value <> ""
            If ActiveCell.Value = syouhin Then
                kakaku = ActiveCell.Offset(0, 2).Value
                fuyoritsu = ActiveCell.Offset(0, 3).Value
            End If
            'MsgBox "価格:" & kakaku & "、ポイント付与率" & fuyoritsu
            ActiveCell.Offset(1, 0).Select
        Loop
        
        '3.取得した「会員ID」から「保有ポイント数」と「会員種別」を取得
        Dim point As Long
        Dim syubetsu As Variant
        
        Worksheets("会員").Select
        Worksheets("会員").Range("A2").Select
        
        Do While ActiveCell.Value <> ""
            If ActiveCell.Value = kaiin Then
                point = ActiveCell.Offset(0, 2).Value
                syubetsu = ActiveCell.Offset(0, 3).Value
            End If
            ActiveCell.Offset(1, 0).Select
        Loop
        
        '4.取得した「価格」と「保有ポイント数」から「支払金額」を表示
        Dim kingaku As Long
        Worksheets("入力").Select
        kingaku = kakaku - point
        Worksheets("入力").Range("B4").Value = kingaku
        
        Worksheets("入力").Range("B6").Value = kakaku
        If syubetsu = "ゴールド" Then
            fuyoritsu = fuyoritsu * 2
        End If
        Worksheets("入力").Range("B7").Value = kakaku * fuyoritsu / 100
    End If
End Sub

download

2011年9月12日月曜日

Excel VBA課題(2)

20110907の課題で作成したVBAをベースとして,「商品ID」「会員ID」を入力し、保有ポイントを使用した場合の支払金額と併せて,ポイントを使用しない場合の支払金額付与ポイント数を表示する.

※用意するExcelのシートは3つ「商品」「会員」「入力」
※1ポイント=1円換算※ポイント使用時は、ポイントは付与されない.


※会員種別として,通常会員/ゴールド会員の2つの区分を用意する.
※ゴールド会員は通常会員と比べて付与ポイント数が2倍とする.


sample code
Sub point()

    '1.ワークシート「入力」に入力された文字列を取得
    Dim syouhin As Integer
    syouhin = Worksheets("入力").Range("B1").Value
    
    Dim kaiin As Integer
    kaiin = Worksheets("入力").Range("B2").Value
    
    '2.取得した「商品ID」から「価格」と「ポイント付与率」を取得
    Dim kakaku As Long
    Dim fuyoritsu As Integer
    
    Worksheets("商品").Select
    Worksheets("商品").Range("A2").Select
    
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = syouhin Then
            kakaku = ActiveCell.Offset(0, 2).Value
            fuyoritsu = ActiveCell.Offset(0, 3).Value
        End If
        'MsgBox "価格:" & kakaku & "、ポイント付与率" & fuyoritsu
        ActiveCell.Offset(1, 0).Select
    Loop
    
    '3.取得した「会員ID」から「保有ポイント数」と「会員種別」を取得
    Dim point As Long
    Dim syubetsu As Variant
    
    Worksheets("会員").Select
    Worksheets("会員").Range("A2").Select
    
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = kaiin Then
            point = ActiveCell.Offset(0, 2).Value
            syubetsu = ActiveCell.Offset(0, 3).Value
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    
    '4.取得した「価格」と「保有ポイント数」から「支払金額」を表示
    Dim kingaku As Long
    Worksheets("入力").Select
    kingaku = kakaku - point
    Worksheets("入力").Range("B4").Value = kingaku
    
    Worksheets("入力").Range("B6").Value = kakaku
    If syubetsu = "ゴールド" Then
        fuyoritsu = fuyoritsu * 2
    End If
    Worksheets("入力").Range("B7").Value = kakaku * fuyoritsu / 100
End Sub

download

Excel VBA課題(1)

「商品ID」「会員ID」を入力し、保有ポイントを使用した場合の金額を表示する.
 (まずは「佐藤」が「テレビ」を購入した場合を考える) 

※用意するExcelのシートは3つ「商品」「会員」「入力」
※1ポイント=1円換算
※ポイント使用時は、ポイントは付与されない.

sample code
Sub point()

    '1.ワークシート「入力」に入力された文字列を取得
    Dim syouhin As Integer
    syouhin = Worksheets("入力").Range("B1").Value
    
    Dim kaiin As Integer
    kaiin = Worksheets("入力").Range("B2").Value
    
    'MsgBox "商品ID:" & syouhin & ", 会員ID:" & kaiin

    
    '2.取得した「商品ID」から「価格」を取得
    Dim kakaku As Long
    kakaku = 0
    
    Worksheets("商品").Select
    Worksheets("商品").Range("A2").Select
    
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = syouhin Then
            kakaku = ActiveCell.Offset(0, 2).Value
        End If
        
        'MsgBox "価格:" & kakaku
        
        ActiveCell.Offset(1, 0).Select
    Loop
    
    
    '3.取得した「会員ID」から「保有ポイント数」を取得
    Dim point As Long
    point = 0
    
    Worksheets("会員").Select
    Worksheets("会員").Range("A2").Select
    
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = kaiin Then
            point = ActiveCell.Offset(0, 2).Value
        End If
        
        'MsgBox "ポイント:" & point
        
        ActiveCell.Offset(1, 0).Select
    Loop

    '4.取得した「価格」と「保有ポイント数」から「支払金額」を表示
    Worksheets("入力").Select
    
    Dim kingaku As Long
    kingaku = kakaku - point
    
    'MsgBox "支払金額:" & kingaku
    Worksheets("入力").Range("B4").Value = kingaku

End Sub

download

Microsoft Excel 2010でマクロ/VBAを有効にする方法

Microsoft Excel 2010では,標準の状態ではマクロ/VBAが使用できないようになっています. マクロを使用するためには,以下の設定を変更する必要があります.

1.メニューの中の「ファイル」から「オプション」を選択


2.リボンのユーザー設定から,「開発」の右側にあるチェックボックスにチェックを入れる

3. これでリボン(ツールバー)に「開発」タブが表示されるようになります.この「開発」タブの中にVisualBasicEditorやマクロを呼び出す為のボタンが含まれています.

4.リボンに表示された「開発」タブの中の「マクロのセキュリティ」ボタンを押し「セキュリティセンター」の画面を開きます.セキュリティの設定を以下のように変更します.

以上.