初心者ですが、宜しくお願いします。

Application.OnTime EarliestTime:=TimeValue(time_ptn), Procedure:="my_func"

上記コードの、末尾のプロシージャの指定において、

Dim prm1 As String, prm2 As Long

Function my_func(prm1,prm2)
   ~内容~
End Function

または、

Sub my_func(prm1,prm2)
   ~内容~
End Sub

というプロシージャを指定したいのですが、
末尾の書き方が分からず困っております。

「Procedure:="my_func(prm1,prm2)"」
「Procedure:= my_func(prm1,prm2)」

のようにやっても、うまくいきません。
正しい書き方をどなたか教えて下さい。

A 回答 (5件)

Option Explicit



Sub test()
  Dim s As String
  Dim i As Long
  Dim j As Long
  Dim x As String
  
  s = "a"
  i = 1
  j = 2
  '文字列 & 変数 & 文字列...みたいに繋ぎます。
  MsgBox "'my_func """ & s & """," & i & "," & j & "'"
  Application.OnTime EarliestTime:=Now + TimeValue("0:00:01"), _
            Procedure:="'my_func """ & s & """," & i & "," & j & "'"
  '
  'x = "'my_func """ & s & """," & i & "," & j & "'"
  'MsgBox x
  'Application.OnTime EarliestTime:=Now + TimeValue("0:00:01"), _
            Procedure:=x
  
End Sub

Sub my_func(prm1 As String, prm2 As Long, prm3 As Long)
  MsgBox prm1 & prm2 & prm3
End Sub
    • good
    • 1
この回答へのお礼

レスポンスが大変遅くなり、申し訳ございませんでした。
早速、試させて頂きました所、うまくいきました。
ありがとうございます。

ちなみに、
Application.OnTime EarliestTime:=Now + TimeValue("0:00:01"), _
            Procedure:="'my_func """ & s & """," & i & "," & j & "'"

の箇所における、「_Procedure:="」の部分にあります、先頭のアンダーバーは、
これは何でしょうか?

このアンダーバー無しで試して上手くいきましたので、これは無視していますが、
何か意味のある記号なのでしょうか。
もしよろしければ、また教えて下さい。

近々、締め切らせて頂くつもりです。
その際には、ベストアンサーとさせて頂きます!

お礼日時:2010/04/28 12:53

VisualBasicEditorでの作法みたいなものです。


基本、コードは1ステップを1行で記述します。
右に長くなりすぎると見にくいですよね。
適宜折り返して可読性を良くします。
http://www.accessclub.jp/actips/tips_108.htm
    • good
    • 0
この回答へのお礼

なるほど、よく分かりました。
この度は終始、丁寧に回答下さり、誠にありがとうございました。
とても助かりました!

お礼日時:2010/04/28 23:29

先のアドバイスコードをそのままコピーペーストしてもらえればいいんですけど。


新規Book、新規標準モジュールで試して、どうなのか教えてください。


MsgBox "a"
ってやると『a』と表示されますよね。
VBAで『"』で囲むと文字列とみなされます。
では『"』をMsgBoxで表示させたい場合はどうするか。

MsgBox """"

外側の『"』2つは、中の文字を文字列として扱うために囲ったものです。
中の『"』2つでMsgBoxの結果『"』を表示します。
ダブルクォートを2つ重ねる事で『"』を表現します。

今回、引数Procedure:=に設定したいプロシージャ名の文字列は

'my_func "a",1'

です。

MsgBoxで文字列として表示させる場合
MsgBox "'my_func ""a"",1'"

シングルクォート
my_func
半角スペース
ダブルクォート
ダブルクォート
a
ダブルクォート
ダブルクォート
カンマ
1
シングルクォート

と記述しなければいけません。

まずは単純なもので確認するなら
Sub test()
  Application.OnTime EarliestTime:=Now + TimeValue("0:00:01"), _
            Procedure:="'my_func 1'"
End Sub

Sub my_func(prm As Long)
  MsgBox prm
End Sub
こんな感じのものからやってみてください。
    • good
    • 0
この回答へのお礼

再度、分かりやすく教えて頂き、ありがとうございます。
教えて頂いたコードをテストし、そのコードに問題がないことが確認できました。

しかし、私の問題は依然として解決していません。
なぜかと言いますと、
プロシージャの引数に渡したいものは、「変数(prm)」なのです。

1とか"a"という、具体的な数値や文字列ではないので、
それが原因でうまくいかないようです。

つまり、
Procedure:="'my_func 1'"  :○(うまくいく)

Procedure:="'my_func prm'"  :×(うまくいかない)

とすると、プロシージャが見つかりません、とアラートが出ます。
(prm は変数です。prm = "この変数を渡したい" とでもしておきましょうか。)

変数を引数として渡す場合の記述方法はまた違ったものになりそうですね?
もし、お分かりでしたら、教えて頂けると助かります。
ちなみに、引数に渡したい変数の数は、3つあります。
(当初2つでしたが、3つになりました)
型としては、string、long、それぞれ1つは含む可能性があります。

以上、宜しくお願い致します。

お礼日時:2010/04/16 05:23

Sub test()


  Application.OnTime EarliestTime:=Now + TimeValue("0:00:01"), _
            Procedure:="'my_func ""a"",1'"
End Sub

Sub my_func(prm1 As String, prm2 As Long)
  MsgBox prm1 & prm2
End Sub
こんな感じでスペースで区切って引数を渡し、シングルクォートでプロシージャ文字列を括ります。

でも
>Dim prm1 As String, prm2 As Long
>
>Function my_func(prm1,prm2)
>:
という書き方から推測すると、グローバル変数を利用する事を想定しているのでしょうか。

Option Explicit
Dim prm1 As String
Dim prm2 As Long

Sub test2()
  prm1 = "a"
  prm2 = 1
  Application.OnTime EarliestTime:=Now + TimeValue("0:00:01"), _
            Procedure:="my_func2"
End Sub

Sub my_func2()
  MsgBox prm1 & prm2
End Sub

この回答への補足

「お礼」を書かせて頂いた後、実際に試してみましたところ、

「マクロ"~~ファイルの存在場所~~ my_func "a",1" が見つかりません」
というようなアラートが出ました。

教えて頂いた記述の、シングルorダブルクォートが、とても繁雑であるため、
本当に、これで良いのだろうかとも思ってしまっているのですが、
教えて頂いたアドバイスの記述には、問題はないでしょうか?

ちなみに、もし宜しければですが、
ここで教えて頂いているクォートの意味、について、
分解して教えて頂けると大変助かります。
またよろしければ、教えて下さい。

補足日時:2010/04/15 23:36
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます

> Procedure:="'my_func ""a"",1'"
> こんな感じでスペースで区切って引数を渡し、シングルクォートでプロシージャ文字列を括ります。

そういった方法があるのですね!
まだ試していませんが、早速試してみたいと思います。
試しましたら、改めて、こちらにてご連絡致します。

> という書き方から推測すると、グローバル変数を利用する事を想定しているのでしょうか。

いえ、グローバル変数を利用しようという考えは、今のところありませんが、
本件の解決にあたり、必要とあれば、使うかもしれません。
ただ、本件とは関係のない所における、グローバル変数の使用というのは、ない、と考えて頂いて結構です。

では、早速、教えて頂いた記述方法を試してみますね。

お礼日時:2010/04/15 23:23

タイムアウトルーチン(my_func)は引数なしプロシジャーなので無理でしょう。


何らかの値を渡したいのであれば、グローバル変数で渡すのが普通です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

「引数なしのプロシージャ」ということを知らずに使っておりました。
グローバル変数で対処する方法を検討してみます。
どうもありがとうございました。

お礼日時:2010/04/15 23:15

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

このQ&Aを見た人はこんなQ&Aも見ています

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

QJavascriptからJSPファイル(~.jsp)を起動する時、引数

JavascriptからJSPファイル(~.jsp)を起動する時、引数を渡したい。また、jspファイル終了後、jspからのリターン値(もくしは引数)をjavascriptで参照したい。
 ※要するに javasript → jsp 起動
 起動jspファイル終了時、javascript側でjspファイルの処理結果を判定したい。

どうすれば良いですか?

Aベストアンサー

要するに、JAVSCRIPTを使って、サーバーサイドのJSPとAJAX(非同期通信)
するという意味ですかねえ?
 それなら、PHPやCGIの場合とあまりちがわないと思うんですが...
あまりくわしくないですが、
HTML(JAVASCRIPT)側からPOST、GET要求したデーターは、
JSP側は
 「request.getParameter(java.lang.String name)」
で受け取れます。
逆にheader指定は、
<%@ page contentType="text/html; charset=utf-8" %>
で、出力は
<% out.print(hoge); %>とか<%= hoge %>
みたいに、ASPやPHPとかまあ、みんな同じようなもんですね。
ヒアドキュメントもあるのかな。

QSubとEnd Subについて

VBScriptのSubとEnd Subについて教えて下さい。

Dim LogonID
Dim Password
Dim URL
Dim objIE
Dim objINPUT
Dim BodyText
Dim AriNashi

LogonID = "XXXXXXXX"
Password = "XXXXXXXXX"
URL = "https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.ya..."

下記のようなプログラムはうまくいくのですがSubで囲むと何故か動作しなくなってしまいます。
使い方が間違っているのでしょうか?


Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate URL
objIE.Visible = True

Do Until objIE.Busy = False
WScript.sleep(250)
Loop

If objIE.document.URL = URL Then
BodyText = objIE.document.body.innerTEXT
AriNashi = InStr(1, BodyText, "Yahoo")
If AriNashi > 0 Then
Set objINPUT = objIE.document.getElementsByTagName("input")
objINPUT(0).value = LoginID
objINPUT(1).value = Password
objINPUT(2).Click
Else
msgbox "NO"
End If
Else
WScript.Echo " ダ メ" & Err.Description
End If
Set objIE = Nothing

VBScriptのSubとEnd Subについて教えて下さい。

Dim LogonID
Dim Password
Dim URL
Dim objIE
Dim objINPUT
Dim BodyText
Dim AriNashi

LogonID = "XXXXXXXX"
Password = "XXXXXXXXX"
URL = "https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.ya..."

下記のようなプログラムはうまくいくのですがSubで囲むと何故か動作しなくなってしまいます。
使い方が間違っているのでしょうか?


Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate ...続きを読む

Aベストアンサー

Subで囲むとプロシージャとなります。
プロシージャは他から呼び出されない限り、勝手に動作はしません。

Sub Hoge
'実体
End Sub

と書いたなら、プロシージャの外で
Call Hoge()
のようにプロシージャを呼び出してあげてください。

QhtmlまたはJavascriptからファイルを引数つきで起動する。

htmlまたはJavascriptからファイルを引数つきで起動する。

マクロ(macro.xls)に引数(csvファイル名)を渡して起動させたいため、
vbsを作成してマクロを引数つきで実行するようにしました。

コマンドからは
>test.vbs /FILE:macro.xls /P:aaa.csv

でマクロを実行することができたのですが、

HTMLにリンクを張り、リンクをクリックすることで
vbsを引数つきで実行するにはどうすればよいでしょうか?
(Javascriptを経由しても構いません)

Aベストアンサー

当然、Windows IE限定のお話ですよね。

どおしてもHTMLでやりたいなら、test.vbsなんて余計な物を作らずに、
直接javascript(MsのJscript)のActiveXオブジェクトを使って、
直接ExcelApplicationオブジェクトを作って、Excelオブジェクト
のクラスメソッドを使って、ファイルの読み込み、マクロの実行を
すればよいんじゃないかと、Excelオブジェクトをシームレスで動かせば、
Excelを見せなくして、マクロ実行だけこっそりさせる事も出来ます。

※だから、セキュリティ制限が厳しいのです。IEで、信頼済みサイトに登録する
必要があります。


<body>
----------
<p>
<a name="button_no_kawari" onclick="Excel_open('xxx.xls');return false;">
エクセルを実行</a>
</p>
----------
<script type="text/javascript">
<!--
 function Excel_open(pgm_name){
  var pgm_path = "c:/プログラム/";
  var file_name = pgm_path + pgm_name;
  var Excel = new ActiveXObject("Excel.Application");
  Excel.Visible = true;
  Excel.Workbooks.Open(file_name,0,"true"); 
  Excel.Workbooks(pgm_name).Sheets("Menu").Activate;
 //他にもいろいろExcelを操作出来る
  Excel.Application.Run("main"); //<=マクロ"main"実行
  Excel = "";
 }
// -->
</script>
</body>

当然、Windows IE限定のお話ですよね。

どおしてもHTMLでやりたいなら、test.vbsなんて余計な物を作らずに、
直接javascript(MsのJscript)のActiveXオブジェクトを使って、
直接ExcelApplicationオブジェクトを作って、Excelオブジェクト
のクラスメソッドを使って、ファイルの読み込み、マクロの実行を
すればよいんじゃないかと、Excelオブジェクトをシームレスで動かせば、
Excelを見せなくして、マクロ実行だけこっそりさせる事も出来ます。

※だから、セキュリティ制限が厳しいのです。IEで、信頼済みサイト...続きを読む

QエクセルVBAのFunctionプロシージャの質問

エクセルのFunctionプロシージャを使って以下のユーザー定義関数を作りたいのですが上手くいきません。
アドバイスお願いしますm(__)m

やりたいこと
エクセルのA列とB列に複数の(たとえば10行の)数字が並んでいます。
各行ごとに 0.5×[A列の値]×[B列の値の二乗]
を算出し、その合計を求めたいです。
別の列(例えばC列)を使って上記の計算式を入力し、その合計を求めればよいのですが
どうしてもFunctionプロシージャを使って1セルだけを使って求めたいのです。


自分はVBA(エクセルマクロ)はあまり詳しくないのですが
色々ネットで調べた結果、以下のようなプロシージャを書いてみたのですが
上手く計算できません。

Function KE(element As Range)
Dim e As Range
Dim m() As Variant
Dim v() As Variant
Dim ans As Integer
i = 0
j = 0
For Each e In element
If i = j Then
m(i) = e.Value
i = i + 1
Else
m(j) = e.Value
j = j + 1
End If
Next e
k = i
i = 0
j = 0
While i < k + 1
ans = ans + 0.5 * m(i) * v(i) * v(i)
i = i + 1
Wend
KE = ans
End Function

もちろん、この形に拘りません
Functionプロシージャを使ってうまく計算できる方法ありましたらご教示お願いします。

エクセルのFunctionプロシージャを使って以下のユーザー定義関数を作りたいのですが上手くいきません。
アドバイスお願いしますm(__)m

やりたいこと
エクセルのA列とB列に複数の(たとえば10行の)数字が並んでいます。
各行ごとに 0.5×[A列の値]×[B列の値の二乗]
を算出し、その合計を求めたいです。
別の列(例えばC列)を使って上記の計算式を入力し、その合計を求めればよいのですが
どうしてもFunctionプロシージャを使って1セルだけを使って求めたいのです。


自分はVBA(エクセルマクロ)はあまり詳し...続きを読む

Aベストアンサー

あまり難しく考えない基本形で、
セル範囲ループ版と二次元配列版、2種。
もしもオーバーフローで困るようなことあれば、あらためて相談で。

' ' =ffKE(A1:B10)  '   QNo.8312529
Function ffKE(element As Range)
  Dim v As Variant
  Dim i As Long
  For i = 1 To element.Rows.Count
    v = v + element(i, 1) * element(i, 2) ^ 2
  Next i
  ffKE = 0.5 * v
End Function


' ' =ffKE9(A1:B10)  '  QNo.8312529
Function ffKE9(element As Range)
  Dim mtxV() As Variant
  Dim v As Variant
  Dim i As Long
  mtxV() = element.Value
  For i = 1 To UBound(mtxV)
    v = v + mtxV(i, 1) * mtxV(i, 2) ^ 2
  Next i
  ffKE9 = 0.5 * v
End Function

あまり難しく考えない基本形で、
セル範囲ループ版と二次元配列版、2種。
もしもオーバーフローで困るようなことあれば、あらためて相談で。

' ' =ffKE(A1:B10)  '   QNo.8312529
Function ffKE(element As Range)
  Dim v As Variant
  Dim i As Long
  For i = 1 To element.Rows.Count
    v = v + element(i, 1) * element(i, 2) ^ 2
  Next i
  ffKE = 0.5 * v
End Function


' ' =ffKE9(A1:B10)  '  QNo.8312529
Function ffKE9(element As Range)
  Dim mtxV() As Variant
  ...続きを読む

QJavaScriptの関数の引数省略について

JavaScriptの関数で、下記のような引数の省略はできるでしょうか?

【例】

function hoge(aaa, bbb){}

hoge(,"できるかな");←このような引数の省略はできるでしょうか?

--------------------

しらべてみると、引数が2つあった場合、後方の引数の省略はできることがわかりました。

【例】
hoge("できるかな");←この場合できます。


しかし、引数が2つあった場合、前方の引数省略の例は見つけることができませんでした。
前方の引数を省略することはできるのでしょうか?
よろしくお願いします。

Aベストアンサー

>hoge(,"できるかな");

そういう引数の省略をする言語もありますが、javascriptでは
文法上間違っているのでエラーで処理されます

どうしてもやりたいならnullでも与えてあげてください
(まぁ省略になっていないですが・・・)

hoge(null,"できるかな");

あとは姑息に無理やり配列で渡すなどすれば似たようなことは
できないことはないですが、あまりお勧めはできません。

<script>
function func(){
var a=arguments[0][0];
var b=arguments[0][1];
document.write("1st:"+a+"<br>");
document.write("2nd:"+b+"<br>");
}
func(["hoge","fuga"]);
func([,"piyo"]);
</script>

QFunction プロシージャの戻り値にバグ?

いつも拝見させていただいてます。
今回Excel VBAでタイムスケジュールを作成したところ、まったくわけのわからないエラーが発生してしまい途方に暮れており、皆様のお力をお借りしたく投稿させていただきます。

エラーの内容は簡単に言うと Function プロシージャの戻り値がなくなってしまう(0になっている)ことです。

ESC = ESColumn(EventStart)

----------------------------------

Function ESColumn(TimecoluConv As Date) As Integer

Select Case TimecoluConv

Case "8:00:00"
ESColumn = 2

Case "8:10:00"
ESColumn = 3

Case "8:20:00"
ESColumn = 4

・・・
End Select
End Function

と、このようなコードで入力された時間を数値に変換しているのですが、
繰り返し処理をしているといきなり戻り値が0になってしまいます。

今回は8:00を6回取得した後、8:10を変換しようとしたら戻り値が0になっていました。
戻り値を使用して、セルを選択するため、そのタイミングでエラーになります。

なぜ繰り返し処理の途中で発生するのでしょうか。
解説と対策をご教示していただけると大変助かります。

よろしくお願いします。

いつも拝見させていただいてます。
今回Excel VBAでタイムスケジュールを作成したところ、まったくわけのわからないエラーが発生してしまい途方に暮れており、皆様のお力をお借りしたく投稿させていただきます。

エラーの内容は簡単に言うと Function プロシージャの戻り値がなくなってしまう(0になっている)ことです。

ESC = ESColumn(EventStart)

----------------------------------

Function ESColumn(TimecoluConv As Date) As Integer

Select Case TimecoluConv

Case "8:00:00"
ESColumn = 2

Case "...続きを読む

Aベストアンサー

Format関数のヘルプを見てもらえばわかることですが
この書式指定では、時間部分は24時間制の2ケタです。

Select Case Format(TimecoluConv, "HH:mm:ss")

Case "08:00:00"
ESColumn = 2

Case "08:10:00"
ESColumn = 3

Case "08:20:00"
ESColumn = 4

・・・
End Select
End Function

Qjavascriptに引数を渡す方法について

お世話になります、
javascriptに下記のように引数を渡して
表示したいのですがうまくいきません。
<script language="javascript">
function dispData(msg)
{
document.write(msg);
}
</script>

$a = "hoge";
echo "<a href='#' onclick='javascript:dispData($a)'>" . $a . "</a><br>";
とすると動作してくれません。
$aをシングルコートで囲っても同じです。
$a = "/hoge/";をやると/hoge/を表示されます。
コーディングの方法を教えて頂きたいのですが。
dispData()に引数を渡して処理を行いたいもので。
よろしくお願い致します。

Aベストアンサー

document.writeする意味がわかりませんが・・・
きちんとクォーテーションをつけてやればわたりませんんか?

<script language="javascript">
function dispData(msg){
alert(msg);
}
</script>
<?
$a = "hoge";
echo "<a href='#' onclick='javascript:dispData(\"$a\")'>" . $a . "</a><br>";
?>

QVBA Functionプロシージャで複数の値を

エクセルでVBAのFunctionプロシージャについて複数の値を戻り値として
受け取る方法を考えています。

下記のようなサンプルプログラムを作りました。
---------------------------------------------------------------------------------
Option Explicit

Private Sub CommandButton1_Click()
Dim kekka(3) As Double
Dim txt As String
txt = "12.12A,34.34B,56.56C,78.78D"
kekka(0) = test(txt)
End Sub

Public Function test(ByVal text As String) As Double
Dim txt_kakou(3) As String

'## 渡された「txt = "12.12A,34.34B,56.56C,78.78D"」を加工し、数値のみを取り出し
'## 下記のように配列txt_kakou(3)に振り分ける
'## 加工方法は割愛

txt_kakou(0) = 12.12
txt_kakou(1) = 34.34
txt_kakou(2) = 56.56
txt_kakou(3) = 78.78

'string型からdouble型に変換する。
txt_kakou(0) = CDbl(txt_kakou(0))
txt_kakou(1) = CDbl(txt_kakou(1))
txt_kakou(2) = CDbl(txt_kakou(2))
txt_kakou(3) = CDbl(txt_kakou(3))

test = txt_kakou()

End Function

-----------------------------------------------------------------------------------

まず、呼び出し側のプロシージャでkekka(3)という配列を宣言します。
次に変数txtに「"12.12A,34.34B,56.56C,78.78D"」の文字列を代入します。
そして変数txtをFunctionプロシージャに投げます。

Functionプロシージャでは、受け取った「"12.12A,34.34B,56.56C,78.78D"」
を数値のみに分解し、4つの変数に代入します。
この4つの変数も配列で用意し、txt_kakou(3)とします。

このtxt_kakou(3)を呼び出し元に返し、呼び出しもとの変数kekka(3)に入れたいのです。

また、はじめ変数txtに代入される値は文字列ですが、この文字列をFunctionプロシージャで分解し、
分解した値は、最終的には数値として扱いたいので、途中でdouble型に変換しています。

これを実行すると、Functionプロシージャの最後のtest = txt_kakou()で、型が一致しません
といわれてしまいます。

どのように書き直せばいいのでしょうか。

よろしくお願いします。

エクセルでVBAのFunctionプロシージャについて複数の値を戻り値として
受け取る方法を考えています。

下記のようなサンプルプログラムを作りました。
---------------------------------------------------------------------------------
Option Explicit

Private Sub CommandButton1_Click()
Dim kekka(3) As Double
Dim txt As String
txt = "12.12A,34.34B,56.56C,78.78D"
kekka(0) = test(txt)
End Sub

Public Function test(ByVal text As String) As Double
Dim txt_kakou(3) As St...続きを読む

Aベストアンサー

No2です。関数を以下に変更してください。
それこそエラーが出ないのでうっかり。

Private Function test(ByVal text As String, ByVal i As Integer) As Double
Dim txt_kakou(3) As String
Dim int_kakou(3) As Double

'## 渡された「txt = "12.12A,34.34B,56.56C,78.78D"」を加工し、数値のみを取り出し
'## 下記のように配列txt_kakou(3)に振り分ける
'## 加工方法は割愛

txt_kakou(0) = "12.12"
txt_kakou(1) = "34.34"
txt_kakou(2) = "56.56"
txt_kakou(3) = "78.78"

int_kakou(0) = CDbl(txt_kakou(0))
int_kakou(1) = CDbl(txt_kakou(1))
int_kakou(2) = CDbl(txt_kakou(2))
int_kakou(3) = CDbl(txt_kakou(3))

test = int_kakou(i)
End Function

No2です。関数を以下に変更してください。
それこそエラーが出ないのでうっかり。

Private Function test(ByVal text As String, ByVal i As Integer) As Double
Dim txt_kakou(3) As String
Dim int_kakou(3) As Double

'## 渡された「txt = "12.12A,34.34B,56.56C,78.78D"」を加工し、数値のみを取り出し
'## 下記のように配列txt_kakou(3)に振り分ける
'## 加工方法は割愛

txt_kakou(0) = "12.12"
txt_kakou(1) = "34.34"
txt_kakou(2) = "56.56"
txt_kakou(3) = "78.78"

int_kakou(0) = CDbl(txt_kakou(0)...続きを読む

Qjavascript外部読み込みの際の引数

教えてください。

HTML内で以下のように ?ver=12 と引数付きでjavascriptを読み込みます。
<script type="text/javascript" src="hoge.js?ver=12"></script>


このver=12をhoge.js内で利用するにはどうやって取得したらよいでしょうか?



※画像等のキャッシュの制御のためにバージョンナンバーをつけて管理します。

Aベストアンサー

一例です。

(function(){
var sc = document.getElementsByTagName("script");
var ver = sc[sc.length-1].src.match(/\?ver=(\d+)$/);
if(ver) ver = ver[1];
alert(ver);
})();

QExcelVBAで「SubまたはFunctionが定義されてません。」と表示されるのどうしてですか。

こんにちは。初心者です。初めてプログラムしていますが、今回もエラーはどこなのか解りません。
どなたかご教授頂きますようお願いします。
エラーは「SubまたはTunctionが定義されてません。」となります。
なお、売上情報の入力フォームに入力した後、「明細行の修正」ボタンをクリックすると「明細行の追加」のコードのPrivate Sub btnAdd_Click()の戻り下記のコードの、「Private Sub btnAdd_Click()」が黄色、18行目の「ClearMeisaiRecord Me」が青表示になります。宜しくお願いします。

Private Sub btnAdd_Click()
'明細行のデータをリストボックスへ追加
With lstMeisai
.AddItem 0
.List(.ListCount - 1, 1) = cboGoodslD.Text
.List(.ListCount - 1, 2) = txtGoodsName.Text
.List(.ListCount - 1, 3) = Format(txtGoodsPrice.Text, "#,##0")
.List(.ListCount - 1, 4) = Format(txtQuantity.Text, "#,##0")
.List(.ListCount - 1, 5) = txtGoodsUnit.Text
.List(.ListCount - 1, 6) = txtAmount.Text
.List(.ListCount - 1, 7) = txtTax.Text
.List(.ListCount - 1, 8) = txtSumWithTax.Text
End With
'合計をラベルに表示(自動関数を使用)
lblGoukeiKingaku.Caption = Format(GetGoukeikingaku(8, lstMeisai), "#,##0")

'明細行の値をクリア
ClearMeisaiRecord Me
'商品IDテキストボックスにフォーカスを移動
cboGoodslD.SetFocus
'「明細行の追加」ボタンを使用不能にする
btnAdd.Enabled = False

End Sub

こんにちは。初心者です。初めてプログラムしていますが、今回もエラーはどこなのか解りません。
どなたかご教授頂きますようお願いします。
エラーは「SubまたはTunctionが定義されてません。」となります。
なお、売上情報の入力フォームに入力した後、「明細行の修正」ボタンをクリックすると「明細行の追加」のコードのPrivate Sub btnAdd_Click()の戻り下記のコードの、「Private Sub btnAdd_Click()」が黄色、18行目の「ClearMeisaiRecord Me」が青表示になります。宜しくお願いします。

Private Su...続きを読む

Aベストアンサー

どこかの物をコピペ(参考に)して作ってるんでしょう?
そこの参考した先のprivate subか何かのClearMeisaiRecordと言う名前の物を取り込んでいないから。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング