Flashで、動的に外部ファイルから画像を読み込むスライドショーを作りました。
これをHTMLに埋め込む際にわからない点がありますので、ご意見おねがいします。

index.htmlに、
・写真集1
・写真集2
・写真集3
という様にリンクがあり、クリックすることで別ウィンドウslideshow.htmlが開きます。
このとき、クリックしたリンクによってslideShow.html?id=1というように固有のid番号がURLに付加され、別ウィンドウに渡されます。

slideshow.htmlにはスライドショーのFlashが埋め込まれており、URLに付加されたid番号を取得して、どの写真をスライドショーにするかを決定します。
URLに付加されたid番号をJavaScriptで取得することは出来ました。(document.writeで表示できます)
しかし、これをFlashに渡す方法がよくわかりません。

<param name='FlashVars' value ='id=1' />
という様に、静的にFlashに渡すことはできるのですが、このidの部分を動的に取得して渡すのに、スクリプトでどのように記述すればいいのかが分からず悩んでいます。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

サーチの解析が複数のパラメータを想定しているようなのに、内容をチェックせずに決めうちみたいだし…



HTMLのほうもembedとparamでダブっているのでは?
(Flashは良く知らないけど、片方でよいのではないでしょうか?)

とりあえず、サーチ部は「id=○○」がくるものと仮定してよくて、かつ、パラメータにidをふってよいのなら、
 document.getElementById('id_num').value = location.search.substr(1);
の1行でもいけると思うけど…
(ダブりはとるという仮定です)
    • good
    • 0

DOMで探してvalueを設定し直せばよろしいかと…


代入するパラメータの値がnumberにあるとすれば、こんな感じ?

var e = document.getElementsByTagName('PARAM'), el;
for (var i=0; i<e.length; i++) {
if (e[i].name=='FlashVars') el = e[i]; break;
}
if (el) el.value = 'id' + number;

この回答への補足

ありがとうございます。
いただいた回答とは少し違うのですが、自分なりに以下のようにphotoShow.htmlを作成しました。
firefox3.0.10では正しく動作するのですが、IE7では値を渡せていないようです。
当初の質問とは多少ずれてきますが、ご意見いただければありがたいです。JavaScriptは基礎から勉強していないため、文法等があまり分からず苦戦しております。
よろしくお願いします。


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>photo garally</title>

<SCRIPT LANGUAGE="JavaScript">
<!--
// id番号の取得
var QS = new Array;
if (location.search.length > 1) {
var m_Array = location.search.substr(1).split("&");
for (idx in m_Array) {
QS.push(m_Array[idx].split("="));
}
}

function setID(){
var targetElement = document.getElementById('id_num');
targetElement.setAttribute("value", "id=" + QS[0][1]);

targetElement = document.getElementById('photoShow_EMBED');
targetElement.setAttribute("FlashVars", "id=" + QS[0][1]);
}
//-->

</SCRIPT>

</head>
<body bgcolor="white">
<center>
<object id="photoShow" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cab … width="950" height="700" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="allowFullScreen" value="true" />
<param name="movie" value="photoShow.swf" />
<param name="loop" value="false" />
<param name="menu" value="false" />
<param name="quality" value="high" />
<param name='FlashVars' id="id_num" value ='id=-1' />
<embed id="photoShow_EMBED" src="photoShow.swf" FlashVars='id=-1' loop="false" menu="false" quality="high" bgcolor="#333333" width="950" height="700" name="photoShow" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer_jp" />
<script>setID();</script>
</object>
</center>
</body>
</html>

補足日時:2009/05/29 17:22
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字列型の一般的な変数名は?

おはようございます。

サンプルコードで
数値型の変数名は
Dim i As Long
のようにiをよく見かけます。

ただ、私が勉強不足のため
文字列型の変数名の一般的な文字に何が使われているのかわかりません。
(str?moji?など?)

サンプルコードを書くときに使用する
文字列型の変数名を教えてください!

Aベストアンサー

こんにちは。私の場合は自己流ですが、ネットなど見て他の方を
参考にして今日に至っています。

ルールは簡単で変数に何を(何の型)格納するかによって変えています。
・長整数の数字を格納する場合:Dim lngXXX as Long
・文字列を格納する場合:Dim strXXX as String
・ワークシートを格納する場合:Dim Wsh as WorkSheet

などです。「変数の型」を「変数の名前」に使います。
これで時間が経過した後にプログラムを読み返した時に
思い出しの助けとなります。
「XXX」の部分も同様で変数を使う目的の名前を含ませると、
後で読んだときにさらに助けになると思います。
例えばString型で何からの「名前」を格納するときには
Dim strName as String
などXXX→Nameとすると可読性が上がると思います。
他の方の回答でもあるように日本語の変数は使わないように
しています。

なお、変数名でアルファベット大文字、小文字混在を使うことで
変数を入力時にすべて小文字で入力したときに変数を打ち間違えていると
気づきやすくなりこれも小さい便利です。

こんにちは。私の場合は自己流ですが、ネットなど見て他の方を
参考にして今日に至っています。

ルールは簡単で変数に何を(何の型)格納するかによって変えています。
・長整数の数字を格納する場合:Dim lngXXX as Long
・文字列を格納する場合:Dim strXXX as String
・ワークシートを格納する場合:Dim Wsh as WorkSheet

などです。「変数の型」を「変数の名前」に使います。
これで時間が経過した後にプログラムを読み返した時に
思い出しの助けとなります。
「XXX」の部分も同様で変数を使う目的...続きを読む

Qid=a1 id=a2 id=a3 のようなid="a"+i のlengthを求めたい

id=a1 id=a2 id=a3 のようなid='a'+i のlengthを求めたい
のですが、どのようにするのでしょうか?

Aベストアンサー

たとえばこんな感じでどうでしょう?

<script>
window.onload=function(){
var tags=document.getElementsByTagName("*");
var count=0;
for(var i=0;i<tags.length;i++){
if(tags[i].id.match(/^a[0-9]+$/)) count++;
}
alert(count);
}
</script>

<div id="a1">a1</div>
<div id="a2">a2</div>
<div id="a3">a3</div>
<div id="a100">a100</div>
<div id="b1">b1</div>
<div id="b2">b2</div>
<div>none</div>

Q【Java】参照型で宣言された変数名の抽出

現在、Javaを学習中の大学生です。

Javaのソースコードを解析し、その中で宣言されている変数名を抽出して、
変数表のようなものを作成するJavaプログラムを書いているのですが、
参照型(クラス型)で宣言されている変数名を抽出する方法が思いつきません。
よろしければ、何かアイディアをいただけないでしょうか。

プリミティブ型の変数については、StreamTokenizerクラスを利用しています。
コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
するという、単純な方法を使っています。こちらも、改良すべき点などあれば、
アドバイスいただけるとありがたいです。

デバッガを使えば出来ないことはないようですが、
出来ればデバッガは使わない方法でお願いします。

Aベストアンサー

ひとまず
>コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
この方法だとローカル変数も抽出してしまうと思いますが
ローカル変数も抽出の対象にするんでしょうか?

ローカル変数を対象としないなら、alice_asahina様の回答にある様にリフレクションが楽でしょう。
ただし、その場合は抽出元がソースコードでは無くクラスファイルになる事に注意して下さい。

あくまでソースコードを対象として処理するのであれば、
>コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
でしなければならない事の概要としては間違っていないと思いますが、
実装の上ではjavaがフリーフォーマットである事に注意して下さい。
型名の途中にホワイトスペースが挟まる事はありませんが、配列の場合こんな書き方も出来ますので。

int a
[
];

また、その際にローカル変数を抽出の対象にしないのであれば、
更に宣言スコープ等を考慮する必要が出てきますし、
これに内部クラスや匿名クラスのフィールドも混ざってくると非常にややこしい事になると思いますが、不可能ではありません。
がんばってください。

ひとまず
>コードをトークンに分解して、型名の次に来るワードトークンを変数名として抽出
この方法だとローカル変数も抽出してしまうと思いますが
ローカル変数も抽出の対象にするんでしょうか?

ローカル変数を対象としないなら、alice_asahina様の回答にある様にリフレクションが楽でしょう。
ただし、その場合は抽出元がソースコードでは無くクラスファイルになる事に注意して下さい。

あくまでソースコードを対象として処理するのであれば、
>コードをトークンに分解して、型名の次に来るワードトークン...続きを読む

QFlashにJavascriptで動的に変数を付加したい

Flashでカウントダウンするムービーを作成し、その初期値をJavascriptで動的に付加しようとしています。

-親ページに子ページを<iframe>で読み込む
-親ページの読み込みは都合最初の1回のみ
-子ページはcgiで書き出し、その際にカウントダウン初期値を動的に設定
-子ページの内容を書き換える度、カウントダウン初期値を動的に変更して行くイメージです。
-子ページに設定したinitValueの値を、親フレームのFlashに付加してその値からカウントダウンさせたい。
-下記のような記述で、IE6.0のみ動作不可

□親ページ
■Flash埋込部
-<object>、<embed>各々に"id"を設定
-付加するカウントダウン用変数restの初期値は60
<object classid=(以下省略)>
<param name="movie" value="countdown.swf?rest=60" id="fls">
<param name="quality" value="high">
<embed src="countdown.swf?rest=60" id="fls2"(以下省略)></embed>
</object>

■Javascript
<head>
<script language="javascript" type="text/javascript">
<!--
function setPrm(rNum){
rv = "countdowm.swf?rest=" + rNum;
document.getElementById("fls").setAttribute("value",rv); //<object>用
document.getElementById("fls2").setAttribute("src",rv); //<embed>用
}
-->
</script>
</head>

□子ページ
<head>
<script language="javascript" type="text/javascript">
<!--
initValue = 30;//サーバーより動的に取得
//親に記述している関数を実行
window.parent.setPrm(initValue);
-->
</script>
</head>

■ブラウザ毎の動作状況
□WIN
-IE6.0・・・×
-Firefox2.0・・・○
□Mac
-Safari2.0・・・○
-Firefox2.0・・・○

IE6.0のsetAttributeでつまづいているような気がしますが、代替となる記述法がわかりません。
IE6.0で動作させる方法等、お知恵をお借り出来ればと存じます。
よろしくおねがいします

Flashでカウントダウンするムービーを作成し、その初期値をJavascriptで動的に付加しようとしています。

-親ページに子ページを<iframe>で読み込む
-親ページの読み込みは都合最初の1回のみ
-子ページはcgiで書き出し、その際にカウントダウン初期値を動的に設定
-子ページの内容を書き換える度、カウントダウン初期値を動的に変更して行くイメージです。
-子ページに設定したinitValueの値を、親フレームのFlashに付加してその値からカウントダウンさせたい。
-下記のような記述で、IE6.0のみ動作不可

...続きを読む

Aベストアンサー

代用できるとしたらSetVariableを使用してください。
このような感じです。
window["movieName"].SteVariable("varName",value);
varName・・・書き換える変数名
value・・・値

QC言語のfloat型変数の値代入と表示について

float型変数の値代入と表示について質問があります。

#include <stdio.h>

int main(void)
{
 float flVal = 50.456;
 printf("float型変数:%f", flVal);
 return 0;
}

上記を実行すると、「float型変数:50.456001」と表示されました。
また、float flVal = 50.1; と変えて実行すると、「float型変数:50.099998」と表示されました。

それぞれ期待していた結果は、
「float型変数:50.456000」、「float型変数:50.100000」だったのですが
代入した値と結果が微妙に異なる理由は何でしょうか。よろしくお願いします。

Aベストアンサー

IBMのページから
http://www-06.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/729933
基本的に小数点以下の数値を含むものは(0.5,0.25、0.125などを除き)、誤差が生じるため。

実際の浮動小数点演算プログラムでは、許容できる範囲であれば一致しているとみなして処理を行うことが多い。

irb(rubyの対話型インタプリタ)やpythonのプロンプトで
irb> 0.1 +0.2 == 0.3 (Enter) とすると
falseが返る。

金額計算などでは単位未満(日本での銭単位とか)を扱う場合はこれでは困るので、小数点以下でも有効桁数内では誤差が生じない固定小数点型が用いられる。

COBOLが何のかんのと言われながら、勘定系取引でシェアが高かったのも基本が固定小数点型を採用していた事が大きい

SQLでも整数型、浮動小数点型、固定小数点型みんなあります。
(Oracleは長いこと、固定小数点型で全部こなしてましたが)

JavaではBigDecimalクラスが固定小数点です。ただ、Java演算子のオーバーロードが出来ないので、いちいちadd、sub、multiply、divideメソッドを使わなければならないのがちょっと面倒。

.Net Framwork( VB.NET、C# )のdecimalクラスの方が直感的かもしれない。

ちなみにrubyにもあります。
http://www.ruby-lang.org/ja/man/html/BigDecimal.html

IBMのページから
http://www-06.ibm.com/jp/domino04/lotus/support/faqs/faqs.nsf/all/729933
基本的に小数点以下の数値を含むものは(0.5,0.25、0.125などを除き)、誤差が生じるため。

実際の浮動小数点演算プログラムでは、許容できる範囲であれば一致しているとみなして処理を行うことが多い。

irb(rubyの対話型インタプリタ)やpythonのプロンプトで
irb> 0.1 +0.2 == 0.3 (Enter) とすると
falseが返る。

金額計算などでは単位未満(日本での銭単位とか)を扱う場合はこれでは困るので、小数点以下でも...続きを読む

Qjqueryのスライドショー。htmlに画像1枚で

jquery-1.5.1.min.jsを使ってjpg画像を
ランダムにスライドショーさせるプログラムで、
下記ポイントを満たしたプログラムへ変えたいです。

・scriptが機能しない場合には画像がちゃんと表示される
・html上にスライドショーに使う画像を並べない(下記コード参考=【画像多いバージョン】)
・修正するコードは【画像1枚バージョン】

よろしくお願いします。


【画像1枚バージョン】
<script type="text/javascript">
$(function(){
 var elm = $(".fadein");
 elm.children("img").hide();

 (function(){
  var img = elm.children("img:hidden");
  elm.children("img:not(hidden)").fadeOut(1000);
  $(img.get(Math.floor(Math.random() * img.length))).fadeIn(500);
  var id = setTimeout(arguments.callee, 5000);  
 })();
});
</script>

<div class="fadein">
<img src="1.jpg" />
<img src="2.jpg" />
<img src="3.jpg" />
<img src="4.jpg" />
<img src="5.jpg" />
</div>



【画像多いバージョン】
<script type="text/javascript">
imgLength = 20;
firstInt = 1;
imgChangeSpeed = 5000;
imgExtension = ".jpg";
imgDirectory = "img/";

randomInt = firstInt + 1;

$(function(){
var t = setInterval(loadImg, imgChangeSpeed);
function loadImg(){
$("#gallery").children("img").animate({'opacity':'0'}, 0)
$("#gallery").children("img").attr("src",function(){ return imgDirectory + randomInt + imgExtension }).animate({'opacity':'1'}, 1000);

if(randomInt < imgLength){
randomInt = parseInt(randomInt) + 1;
}
else{
randomInt = 1;
}
}
});
</script>

<div id="gallery">
<img src="img/1.jpg" />
</div>

jquery-1.5.1.min.jsを使ってjpg画像を
ランダムにスライドショーさせるプログラムで、
下記ポイントを満たしたプログラムへ変えたいです。

・scriptが機能しない場合には画像がちゃんと表示される
・html上にスライドショーに使う画像を並べない(下記コード参考=【画像多いバージョン】)
・修正するコードは【画像1枚バージョン】

よろしくお願いします。


【画像1枚バージョン】
<script type="text/javascript">
$(function(){
 var elm = $(".fadein");
 elm.children("img").hide();

 (function(){...続きを読む

Aベストアンサー

記述したいマークアップと、その上で行ないたい処理や条件等を明確にして質問しないと、なかなか思う通りのものは入手できないかも。


http://oshiete.goo.ne.jp/qa/6623078.html でご質問に提示なさっているような回答をしたのは、HTMLとスクリプトとで画像のurlをダブって持っているたからで、HTMLに記述したくないのであれば、q6623078のご質問文のスクリプトのようにスクリプト内で定義しておけばよろしいかと。
さらには、今回のご質問のように規則性のある連番での画像名に限定できるのならば、スクリプトで定義しなくてもスクリプトに生成させることが可能です。ご提示の『【画像多いバージョン】』はその方法をとっています。
(HTML内に記述しても、CSSでdisplay:noneで非表示にするという方法もありますが…)

ご提示の【画像多いバージョン】では、変数randomIntがランダムと名がついているものの1ずつ順番に増やしていくようになっているので、そこの部分をランダムにしてあげればよろしいかと思われます。
ランダムな数字を取得する方法は、q6623078のご質問文に提示なさっている方法とその回答に記した方法も同じですので、それを利用すれば良いのではないでしょうか。

記述したいマークアップと、その上で行ないたい処理や条件等を明確にして質問しないと、なかなか思う通りのものは入手できないかも。


http://oshiete.goo.ne.jp/qa/6623078.html でご質問に提示なさっているような回答をしたのは、HTMLとスクリプトとで画像のurlをダブって持っているたからで、HTMLに記述したくないのであれば、q6623078のご質問文のスクリプトのようにスクリプト内で定義しておけばよろしいかと。
さらには、今回のご質問のように規則性のある連番での画像名に限定できるのならば、スクリプト...続きを読む

Q 日付型なら変数の先頭になんてつけてますか?

変数名で、
文字列型なら
Dim str組織名 As String
数値型なら
Dim intNo As Long
としてるのですが、
日付型なら変数の先頭になんてつけてますか?

Dim date月日 As Date
にしようかなと思ったのですが
なんかくどいかなって感じます。

Aベストアンサー

 ご質問のカテゴリが [デジタルライフ] - [ソフトウェア] - [Office系ソフト] ですので「VBA(Visual Basic for Applications)」でのお話しとして回答いたします。

 Office 系の解説で有名な「インストラクターのネタ帳」に
●変数のプレフィックス一覧
http://www.relief.jp/itnote/archives/001268.php
というページがありますが、ここに、

'-- ここから引用------------------------------------------------------
対象:Visual Basic for Applications

変数名にデータ型がわかるようなプレフィックス(プリフィックス)をつける記述スタイルがありますが、どのデータ型のときにどんなプレフィックスをつけるか、Microsoftのサイトを元に一覧にまとめておきます。
'-- ここまで引用------------------------------------------------------
として、
データ型/プレフィックス/変数の例
文字列型 (String)/str/strFName
日付型 (Date)/dtm/dtmStart
のように掲載されています。

 ちなみに、上記ページにある論拠としての「Microsoftのサイト」ですが、リンク切れになっておりますので、こちらをご覧ください。
http://web.archive.org/web/20050309034601/http://www.microsoft.com/japan/developer/library/VBCon98/vbconconstantvariablenamingconventions.htm

 ご質問のカテゴリが [デジタルライフ] - [ソフトウェア] - [Office系ソフト] ですので「VBA(Visual Basic for Applications)」でのお話しとして回答いたします。

 Office 系の解説で有名な「インストラクターのネタ帳」に
●変数のプレフィックス一覧
http://www.relief.jp/itnote/archives/001268.php
というページがありますが、ここに、

'-- ここから引用------------------------------------------------------
対象:Visual Basic for Applications

変数名にデータ型がわかるようなプレフィックス...続きを読む

Q

▼次のようにページ内のdivタグのidの名前によって、formタグ内の要素をdisableにすることはJava scriptによって可能でしょうか?

<div id="AA">のとき、別の場所にある<form id="BB">内のselect要素などすべての要素をdisableにする。

また同時に、id="BB"に指定したスタイルシートの記述を書き換えることは可能でしょうか?

何かよい方法をご存知でしたら教えてください。よろしくお願いいたします。

Aベストアンサー

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として使わない方が良いです。
つまり、
id="soldout"の時に
var soldout;という風にはしない方が良いです。
同じでなければ、cartFormでもなんでもかまいません。
あと、scriptは、
<!--
(スクリプトの中身)
//-->
のように
<!--
//-->
で囲むようにします。

getElementById
は、ブラウザやのブラウザのバージョンによっては使えないことがあります。
その場合は、使えるかどうかを調べる必要があります。

<script type="text/javascript">
<!--
function stockStatus (num){
var f=document.getElementById("soldout");

if(f!=null){
for (var i =0; i<=f.length -1 ;i++){
f.elements[i].disabled=num;
}
}
}
//-->
</script>

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として...続きを読む

Q変数の型を定義しなかった場合どうなりますか?

現在、VBAを使ってプログラミングを行っているところなのですが、
一般的に、プログラムの最初で変数に対してintegerやlongといった型を定義してから使うというように教わりますが、このように型を定義しなくとも使うことが出来ます。もし定義しなかった場合、その変数の型は何に設定されているのでしょうか?
では型を定義するメリット及び、せずに使った場合のデメリットは何なのでしょうか?

私が使っているのはVBAですが、他の言語では型を定義しなければ、その変数を使うことが出来ないというようなものもあるのでしょうか?

Aベストアンサー

こんばんは。

>一般的に、プログラムの最初で変数に対してintegerやlongといった型を定義してから使うというように教わりますが、

もし、入門者に対して、そのようなことを言う人は、経験のあるインストラクターではないと思います。有名な教本などには、そのようなことは書かれていないはずです。

変数を使う時の問題点をあえて書かせていただきます。

私は、今のところ、VBA専門の回答をしていますが、VBAの入門レベルの人は、変数のデータ型を宣言すると、初心者には分からないエラーが時々出るようになります。入門レベルでは、宣言するというのは、入力間違いを減らすために、モジュールの先頭に、Option Explicit と入れ、プロシージャ内で単に Dim 〇〇 とすればよいです。

データ型が決められていないなら、データ型の宣言しないほうが分かりやすいはずです。無理に入れたところで、初心者は、どうしてエラーが発生したか分かりません。それは、扱うデータ型のサイズなどが分からないからです。

VBAの変数のデータ型には、ほとんど、それしかないというものがあるのですが、そういう変数が分かるようになるまでは、しばらくは、テキストを参考にしたり、自分でトライアンドエラーを繰り返し、VBEditor のローカルウィンドウを確認しながら入れてもらうしかありません。ローカルウィンドウには、Variant/Long とか、本来のデータ型が出てきます。

私は、そういう話は、決まりきったことであっても、説明するのは面倒だと思うことが多いです。私は、あまり入門者に対しては教えることはしませんが、分からなければ、あえて使わなくてもよいと言います。

今のPCのスペックで、変数を宣言しないからといって、言うほどの大きな違いがあるとは思えません。Variant 型やString 型は、2Gまでの余裕があるのですが、VBAでは、それ以前に、アプリケーションがVBAに割付されたメモリの制限があり、そこでトラブってきてしまいます。まず、変数自体で、どうこうなるとは思えないです。

本格的には使いこなしは、建前論ではなく、本来、明示的に入れないと意味がありません。

主に、丸め誤差に対してデータ型のゆらぎが発生します。
'-------------------------------------------
'計算結果はどれも 0 となるはずです

Sub Sample1()
  Dim dbl_A As Double
  Dim sng_B As Single
  Dim cur_C As Currency
  Dim var_D As Variant
'リテラル値は変数型に影響を受けます。
'Variant型にしておいて、リテラル値に型宣言文字を使用するのは関心しません。
  dbl_A = 0.5 - 0.4 - 0.1
  sng_B = 0.5 - 0.4 - 0.1
  cur_C = 0.5 - 0.4 - 0.1
  var_D = 0.5 - 0.4 - 0.1
End Sub
'-------------------------------------------

>私が使っているのはVBAですが、他の言語では型を定義しなければ、その変数を使うことが出来ないというようなものもあるのでしょうか?

プログラミング言語自体は、ほとんどデータ型の宣言をしないといけないと思います。それだけ、前提となる敷居が高いということです。

逆に、VBAの親戚のVBScript の場合は、データ型の宣言が出来ません。それだけに、例えば、文字と数字の比較は、そのまま比較してはならないわけです。VBAの場合も本来は、If 文字 = 数字 Then という比較すること自体が間違いのはずですが、それがまかり通ってしまうのですから、そういう点でデータ型があやふやになってしまっているわけです。だから、そういうアプリケーションの便利な機能に助けられてコードが成り立っているわけですから、厳密に大きな問題にはならないと思います。

'-------------------------------------------
'VBAサンプルプログラム(本来は、間違いのはずです)

Sub Sample2()
Dim i As Long
Dim j As String
i = 1
j = "1"
If i = j Then
 MsgBox "OK"
Else
 MsgBox "different"
End If
End Sub
'-------------------------------------------

こんばんは。

>一般的に、プログラムの最初で変数に対してintegerやlongといった型を定義してから使うというように教わりますが、

もし、入門者に対して、そのようなことを言う人は、経験のあるインストラクターではないと思います。有名な教本などには、そのようなことは書かれていないはずです。

変数を使う時の問題点をあえて書かせていただきます。

私は、今のところ、VBA専門の回答をしていますが、VBAの入門レベルの人は、変数のデータ型を宣言すると、初心者には分からないエラーが時々出るよ...続きを読む

QIDの持たせ方 (Re: IDのHTML文字列を…)

すみません、締め切った質問ですが、ご回答くださった
steel_grayさんが予測されていた通り(下記)、

> ページ内の全リンクに「<br>↑のファイルがある…」が足されます。
> 一部のリンクだけに足すようにするにはなにか条件が必要です。
> (あるIDを持つDIV配下のリンクだけにするとか、
> あるclassを持つアンカーだけにする等。)

'一部のリンクだけに' リンクを足すようにしたいの
ですが、、、。自分なりに考えてみたのは、

(1) <head>内のスクリプトで下記の部分を改訂

var AnchorList = document.getElementsByTagName('A');

var AnchorList = document.getElementById('folder');


# getElementByIdでいいのですよね?getElement【s】ByIdでなく


(2) <body>内の「<br>↑のファイルがある…」を挿入したい部分に<div>タグ+IDを追加

<div id="folder">
<a href="file:///C:\temp\hoge1.txt">file:///C:\temp\hoge1.txt</a>
</div>

でも、動作せず、スクリプトエラーにもならず、です。

何が誤っていますでしょうか。
すみません、よろしくお願い致します。

すみません、締め切った質問ですが、ご回答くださった
steel_grayさんが予測されていた通り(下記)、

> ページ内の全リンクに「<br>↑のファイルがある…」が足されます。
> 一部のリンクだけに足すようにするにはなにか条件が必要です。
> (あるIDを持つDIV配下のリンクだけにするとか、
> あるclassを持つアンカーだけにする等。)

'一部のリンクだけに' リンクを足すようにしたいの
ですが、、、。自分なりに考えてみたのは、

(1) <head>内のスクリプトで下記の部分を改訂

var AnchorList = d...続きを読む

Aベストアンサー

試してないけど、
<dd><a href="${uri}"id="folder">${uri}</a> (${size} bytes)<br><br>
の部分を
<dd><a href="${uri}" class="folder">${uri}</a> (${size} bytes)<br><br>
にして
#1の
if(AnchorList[i].parentNode.parentNode.getAttribute('id')=="folder"){
の部分を
if(AnchorList[i].className=="folder"){
にすればいいような気がします。


人気Q&Aランキング