Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


200 / 3841 ページ ←次へ | 前へ→

【78453】Re:見出しの下側に「二本線」
発言  β  - 16/9/24(土) 16:23 -

引用なし
パスワード
   ▼くまはち さん:

>3.表の2行目(A2:I2)の見出し行の体裁(書式)を変更するステートメントを次の条件で作成してください。

提示の条件通りにシート上の操作を行うことはできますよね?
(最終列については、まずは固定でもいいです)
それをマクロ記録してみましたか?
どういう設定コードになるかがわかるはずですが?

>以下の式であってますか?

仮に、間違ったコードのマクロを実行しても、PCが爆発することはありません。
実際に実行してどうなるかを確かめてみてはいかがですか?

●質問は、上記2点を行ったうえで、コードを組み立て、実行して、

 結果が思わしくない、このコードでこのエラーになった。どうしたらいいか。

 こうされてはいかがですか?

 
・ツリー全体表示

【78452】見出しの下側に「二本線」
質問  くまはち  - 16/9/24(土) 16:11 -

引用なし
パスワード
   3.表の2行目(A2:I2)の見出し行の体裁(書式)を変更するステートメントを次の条件で作成してください。
【作成条件】
 ・セル「A2」を基準に「End」プロパティで右の終端セルまでを見出し範囲として参照する
 ・Withステートメントを使用し、参照したオブジェクトに対する処理を簡潔に記述する
  (※以下はWithステートメント内のオブジェクトに対する処理 )
 ・フォントのスタイルを「太字」にする
 ・「ColorIndex」プロパティのインデックス番号「16」で参照セル範囲の塗りつぶしを行う
 ・文字の配置をセルの中央(縦横)にする
 ・「Borders」プロパティで見出しの下側に「二本線」の罫線を設定する

以下の式であってますか?


Range("A2").End(xlToRight).Select


With Range("A2")
.Font.Bold = True
.Interior.ColorIndex = 16
.HorizontalAlignment = xlCenter
.Range("A2".xlToRight).xlEdgeBottom


End With

End Sub
・ツリー全体表示

【78451】Re:数字の出てくる確率を変更したいので...
発言  γ  - 16/9/24(土) 15:55 -

引用なし
パスワード
   > なるほど!Rndの後に、()だけにすることで、小数を返すことができるのですね!
カッコの有無で小数になったり整数になったりということはありません。
0と1の間の一様分布という意味をよく考えましょう。

ループ系列とはひと言も書いてなかったですよね。
系列A : "1→2→1→4→3→2→4→1→3→4→2→3→1→2"
系列B : "1→2→4→3→1→4→2→1→3→2→3→4→1→2"
とでも記述すべきでしょう。(最後のところに注目してください。)

> 今回、100回試行のうち、
> 85%でA系列が選択され、15%の確率でB系列が選択されるので、
> 100回のうちA系列の数字が85回、B系列の数字が15回現れればよいのではないかと思っています。
 そう簡単なことでもなく、混在するんじゃないかと思いますが。(それはさておく)

> 指導教官とも相談をしているのですが、
> 指導教官は、「ずいぶん昔にプログラムやったから、もうやり方忘れちゃった〜。mさん頑張ってよ〜」と話していて、アドバイスがもらえない状況です。

それは、そこがあなたの仕事だよ、とおっしゃっているんじゃないですか?
どうですか。ヒントを元に少し考えますか?
すぐに回答を書くこともできるけれど、あなたのためにならないような気もする。
悩む。
・ツリー全体表示

【78450】Re:数字の出てくる確率を変更したいので...
質問  m  - 16/9/24(土) 15:20 -

引用なし
パスワード
   γ さん

返信ありがとうございます。
論文ダウンロードできたみたいでよかったです。

スペースは1つでよいのですね。
何も知らず、本当にすいません。


>系列の作り方は理解しているつもりです。
>手元に作成例もありますので。
>確認のためにお聞きしている、
>>このあとどうするのですか? これで終わりでよいのですか?
>この質問に答えていただいていないです。
>その系列というのは単なる説明用例示ということですか?


そうですね。この部分にきちんと答えられていなかったですね。

>>このあとどうするのですか? これで終わりでよいのですか?

この後も同じように数字が続いてほしいです。
出来れば数字が100回続いてもらえると助かるなと思っています。


>その系列というのは単なる説明用例示ということですか?

その系列というのは
A系列とB系列という意味でしょうか?
それとも「系列例」ということでしょうか?

系列Aと系列B(12個の数字の並び)は、説明用例示ではなく、実際に実験にて使用したい系列の並び方です。

「系列例」は、論文の図中に載っていた例を載せたものです。なので、こちらは系列の作成の仕方などを説明した説明用例示と思われます。
(曖昧なお返事で本当にすいません。)


あと、説明が足りていない部分があるかもしれないので
いくつか捕捉をしておきます。


A系列もB系列も

A:1→2→1→4→3→2→4→1→3→4→2→3

B:1→2→4→3→1→4→2→1→3→2→3→4

これで系列が終わりというわけではなく、
通常のSRTではそれぞれの系列が100回続くような感じで実験が組み立てられています。

なので、
A系列は
1→2→1→4→3→2→4→1→3→4→2→3→1→2→1→4→3→2→4→1→3→4→2→3→1→2→1→4→3→2→4→1→3→4→2→3…

と、12個の同じ数字の並びが100回繰り返されます。

B系列も同様です。

今回、100回試行のうち、
85%でA系列が選択され、15%の確率でB系列が選択されるので、
100回のうちA系列の数字が85回、B系列の数字が15回現れればよいのではないかと思っています。
(あくまで、論文を読んだ私の解釈なので、きちんとしたことは、指導教員に確認しないといけないかもしれませんが…。すいません)

すいません。無駄な捕捉だったかもしれないです…。


また、何かありましたら教えてください。できる限り頑張って伝えられるように努力して返信しますので。


何度もお手数をおかけしてしまって、本当に申し訳ありません。

よろしくお願いいたします。
・ツリー全体表示

【78449】Re:数字の出てくる確率を変更したいので...
発言  γ  - 16/9/24(土) 14:53 -

引用なし
パスワード
   Getできました。著者のサイトでしたか。
なお、
>なるほどスペースを挟むとURLが載せられるのですね。
スペースはひとつでいいですよ。
普通はhtとtpの間にスペースを入れる方が多いです。


系列の作り方は理解しているつもりです。
手元に作成例もありますので。
確認のためにお聞きしている、
>このあとどうするのですか? これで終わりでよいのですか?
この質問に答えていただいていないです。
その系列というのは単なる説明用例示ということですか?
・ツリー全体表示

【78448】Re:数字の出てくる確立を変更したいので...
質問  m  - 16/9/24(土) 14:37 -

引用なし
パスワード
   ▼m さん:
>>γ さん
>
>返信ありがとうございます。
>
>>Rnd()は[0,1)の小数を返します。
>>それと0.85 とを比較して、
>>0.85以下なら系列Aを選び、そうでなければ系列Bを選ぶ、
>>このようにすれば、
>>0.85の確率で系列Aを選び、0.15の確率で系列Bを選ぶことになる。
>
>なるほど!Rndの後に、()だけにすることで、小数を返すことができるのですね!
>ありがとうございます!
>
>
>>ところで、
>>使用系列  A A B B B B
>>数字   1 2 1 3 2 3 4
>>ここで行き止まりになりますな。
>>このあとどうするのですか? これで終わりでよいのですか?
>
>
>どのように説明すればいいのか、とても難しいのですが…
>
>論文に載っていた系列例を見にくいかもしれませんが書いてみます。
>
>1→2→1→4→3→ 1→4→ 3→2→4→1→3→4→2→3→1→2→1→ 3→ 4→2→3→…
>{系 列 A } {B} {  系   列    A    }{B}{系列A}
>
>
>A系列:1→2→1→4→3→2→4→1→3→4→2→3
>
>B系列:1→2→4→3→1→4→2→1→3→2→3→4
>
>
>4→3と数字が並ぶ度に、A系列に進むか、B系列に進むかを選択し、
>どちらかの系列の並び順に入り込み、次の数字が選ばれます。
>例えば、上記の系列例で行けば、
>4→3と数字が並んだとき、15%の確率で次の数字が1となり、B系列に入ります。
>ここで、85%の確率で次の数字に2が選択され、A系列にままとどまる可能性もあります。
>
>B系列に入った後、1→4と数字が並ぶと、またA系列に進むか、B系列に進むか、確率によって選択されます。
>上記の系列例では、
>1→4と数字が並んだとき、85%の確率で次の数字が3となり、A系列に入ります。
>しかし、15%の確率で次の数字が2となり、B系列にとどまる可能性もあります。
>
>つまり、
>1→4と数字が並んだとき
>4→3と数字が並んだとき
>2→1と数字が並んだときは
>毎回必ず、どちらの系列に進むかを確率で決定し、
>決定した系列の方へ侵入し、
>その系列で決まっている並び順(上記のA系列とB系列の順番)に数字が配置されるという法則となっています。
>
>
>実験の試行としては、
>1つの数字で1試行と考え、100回連続して試行続けたいと考えています。
>つまり、この法則で100こ数字を並べたいと思っています。
>
>
>紹介した論文は、PDFが無料でダウンロードできるはずです…
>著者は、Scott Barry Kaufamらです。
>
>Scott Barry Kaufam, Colin G. DeYoug, Jeremy R. Gray, Luis Jimenz, Jamie Brown, Nicholas Machintosh. (2010). Implicit learning as an ability. Cognition, 116(2010), 321-340.
>
>
>なるほどスペースを挟むとURLが載せられるのですね。
>ht tp: // sco ttba rryk aufma n.c om/wp-con ten t/u plo ads/2 011/06/ Kau fman-et-al.-20 10. pdf
>
>
>乱雑にスペースを挟んでいるので、見にくいかもしれません…
>慣れないもので、本当にすいません…
>
>また、いろいろとご足労をおかけしてしまって、本当に申し訳ありません。
>
>このように助けていただいて、とても助かっています。
>
>よろしくお願いいたします。
・ツリー全体表示

【78447】Re:数字の出てくる確立を変更したいので...
質問  m  - 16/9/24(土) 14:27 -

引用なし
パスワード
   >γ さん

返信ありがとうございます。

>Rnd()は[0,1)の小数を返します。
>それと0.85 とを比較して、
>0.85以下なら系列Aを選び、そうでなければ系列Bを選ぶ、
>このようにすれば、
>0.85の確率で系列Aを選び、0.15の確率で系列Bを選ぶことになる。

なるほど!Rndの後に、()だけにすることで、小数を返すことができるのですね!
ありがとうございます!


>ところで、
>使用系列  A A B B B B
>数字   1 2 1 3 2 3 4
>ここで行き止まりになりますな。
>このあとどうするのですか? これで終わりでよいのですか?


どのように説明すればいいのか、とても難しいのですが…

論文に載っていた系列例を見にくいかもしれませんが書いてみます。

1→2→1→4→3→ 1→4→ 3→2→4→1→3→4→2→3→1→2→1→ 3→ 4→2→3→…
{系 列 A } {B} {  系   列    A    }{B}{系列A}


A系列:1→2→1→4→3→2→4→1→3→4→2→3

B系列:1→2→4→3→1→4→2→1→3→2→3→4


4→3と数字が並ぶ度に、A系列に進むか、B系列に進むかを選択し、
どちらかの系列の並び順に入り込み、次の数字が選ばれます。
例えば、上記の系列例で行けば、
4→3と数字が並んだとき、15%の確率で次の数字が1となり、B系列に入ります。
ここで、85%の確率で次の数字に2が選択され、A系列にままとどまる可能性もあります。

B系列に入った後、1→4と数字が並ぶと、またA系列に進むか、B系列に進むか、確率によって選択されます。
上記の系列例では、
1→4と数字が並んだとき、85%の確率で次の数字が3となり、A系列に入ります。
しかし、15%の確率で次の数字が2となり、B系列にとどまる可能性もあります。

つまり、
1→4と数字が並んだとき
4→3と数字が並んだとき
2→1と数字が並んだときは
毎回必ず、どちらの系列に進むかを確率で決定し、
決定した系列の方へ侵入し、
その系列で決まっている並び順(上記のA系列とB系列の順番)に数字が配置されるという法則となっています。


実験の試行としては、
1つの数字で1試行と考え、100回連続して試行続けたいと考えています。
つまり、この法則で100こ数字を並べたいと思っています。


紹介した論文は、PDFが無料でダウンロードできるはずです…
著者は、Scott Barry Kaufamらです。

Scott Barry Kaufam, Colin G. DeYoug, Jeremy R. Gray, Luis Jimenz, Jamie Brown, Nicholas Machintosh. (2010). Implicit learning as an ability. Cognition, 116(2010), 321-340.


なるほどスペースを挟むとURLが載せられるのですね。
ht tp: // sco ttba rryk aufma n.c om/wp-con ten t/u plo ads/2 011/06/ Kau fman-et-al.-20 10. pdf


乱雑にスペースを挟んでいるので、見にくいかもしれません…
慣れないもので、本当にすいません…

また、いろいろとご足労をおかけしてしまって、本当に申し訳ありません。

このように助けていただいて、とても助かっています。

よろしくお願いいたします。
・ツリー全体表示

【78446】Re:数字の出てくる確立を変更したいので...
発言  γ  - 16/9/24(土) 13:54 -

引用なし
パスワード
   Rnd()は[0,1)の小数を返します。
それと0.85 とを比較して、
0.85以下なら系列Aを選び、そうでなければ系列Bを選ぶ、
このようにすれば、
0.85の確率で系列Aを選び、0.15の確率で系列Bを選ぶことになる。

ところで、
使用系列  A A B B B B
数字   1 2 1 3 2 3 4
ここで行き止まりになりますな。
このあとどうするのですか? これで終わりでよいのですか?

なお、
紹介論文は 有料($39.95)ですね。買って回答して欲しいと?
無料のPDFか何かあるんですか?
HT TPのようにスペースをはさんでurlを書けば問題がないですよ。
・ツリー全体表示

【78445】Re:数字の出てくる確立を変更したいので...
質問  m  - 16/9/24(土) 13:01 -

引用なし
パスワード
   >γ さん

早速の返信、本当にありがとうございます。


すいません。本当に初心者のため
以下の部分が、よくわかりませんでした。

>普通は[0,1)間の一様乱数を発生させて、
>それと閾値との大小比較した結果で、
>使用する系列を使い分けるということになるのでしょうね。


(0, 1)の一様な乱数を作成するというのは、

j = Int(((1 - 0 + 1) * Rnd) + 1)

という式で乱数を作成したらよいのでしょうか?
また、「閾値との大小比較」は、どのように行ったらよいのでしょうか?
また、使用する系列をどのように指定したら良いのでしょうか?


知識がなく本当にすいません汗
また、たくさん質問をしてしまい、本当にすいません。


あと、この刺激の配置は、
以下の論文を参考に作成しようとしています。
(リンクを張ろうと思ったのですが、張ることができなかったので、論文タイトルを掲載しておきます。)

論文タイトル:Implicit Learning as an ability.


全編英語なのですが、こちらの論文のmethodを読んでいただけると
より、どのような刺激を作成したいのかが
伝わりやすいかもしれない…と思いました。
(この論文の5ページ目からmethodが始まり、6ページ目に実験の系列の作成例を示した図が載っています。)


私自身も、いろいろ調べて、頑張ってプログラム組んでみようと思っています。
何卒、よろしくお願いいたします。
・ツリー全体表示

【78444】Re:数字の出てくる確立を変更したいので...
発言  γ  - 16/9/24(土) 12:18 -

引用なし
パスワード
   普通は[0,1)間の一様乱数を発生させて、
それと閾値との大小比較した結果で、
使用する系列を使い分けるということになるのでしょうね。

乱数はVB標準のRnd関数を使うか、
それで不十分ならMTなども使用可能でしょう。
・ツリー全体表示

【78443】数字の出てくる確立を変更したいのですが...
質問  m  - 16/9/24(土) 11:35 -

引用なし
パスワード
   こんにちは。
はじめまして。

大学の研究で実験ソフトを用いて急遽プログラムを組んで実験をしないといけなくなり、今必死で勉強をしている、プログラミング初心者の者です。
VBAも初心者のため、わからないことだらけです。


実験課題作成中にわからないことが発生したため、質問させていただいています。


今、SRTT(系列反応時間課題)という実験課題を作成しています。

SRTTというのは、画面上に4つの四角があり、その四角の中に*が「ある決まり」に沿って発生し、*の出てきた位置に対応するボタンを早く・正確に押してもらうという課題です。
「ある決まり」というのは、1〜4までの数字を使ったある系列(例えば、1-4-2-3-4-1-2-3-1-3-2-4)の順番に繰り返し画面に*が現れる、などのように、*が出てくる順序がある法則で決まっている、ということです。


通常のSRTTでは、1つの決まった系列の順序に沿って、繰り返し*が現れるだけなのですが…
今回私が作成しているSRTTは、少し複雑なのです。

まず、決まった順序が2種類あります。

1つは、Aという系列
A:1→2→1→4→3→2→4→1→3→4→2→3

もう1つはBという系列です。
B : 1→2→4→3→1→4→2→1→3→2→3→4

これら2つの系列は、「2つの数字の並び順によって、次に来る数字が決まる」という法則にのっとって決められています。
(例えば、1が来て、次に3が来ると、自動的に次の数字は4となる)

しかし、1→2と来たら、A系列では次は1、B系列では次は4というように、A系列とB系列では、2つの数字の組み合わせの後に来る数字が異なっています。


実験では、
これら2つの異なった系列を決まった確率で交換しながら刺激を提示したいと考えています。

交換できるポイントは3つあります。
4→3と並んだところと、1→4と並んだところと、2→1と並んだところです。

4→3と数字が並んだら、85%の確率で次に2が来てA系列の並び順で刺激を提示し、15%の確率で次に1が来てB系列の並び順で刺激を提示します。

1→4と数字が並んだら、85%の確率で次に3が来てA系列の並び順で刺激を提示し、15%の確率で次に2が来てB系列の並び順で刺激を提示します。

2→1と数字が並んだら、85%の確率で次に4が来てA系列の並び順で刺激を提示し、15%の確率で次に3が来てB系列の並び順で刺激を提示します。


「2つの数字の組み合わせで次が決定する」というプログラムをVBAでやってみて、A系列だけ、B系列だけであれば、うまく動かすことができました。

しかし、2つの系列を決まった確率で交換し、
交換した後は、それぞれの系列の順序に従って数字が選ばれるというプログラムが
どうしてもできません。


指導教官とも相談をしているのですが、
指導教官は、「ずいぶん昔にプログラムやったから、もうやり方忘れちゃった〜。mさん頑張ってよ〜」と話していて、アドバイスがもらえない状況です。


皆さん、お力を貸していただけませんでしょうか。

どうか、よろしくお願いします。


補足です。

エクセルで実験を行うわけではなく、
あくまで刺激を提示する順序をVBAで作成し、その順序で実験用の刺激配置を変更し、実験を行おうと思っています。
よろしくお願いします。
・ツリー全体表示

【78442】Re:セルに文字列が入力されたらマクロの...
発言  γ  - 16/9/24(土) 11:07 -

引用なし
パスワード
   エラー内容の説明も、XXXの説明もないので、質問として未完了です。
このままいくら待っていても、回答は出てこないと思います。
・ツリー全体表示

【78441】Re:セルに文字列が入力されたらマクロの...
発言  γ  - 16/9/23(金) 18:10 -

引用なし
パスワード
   >Private Sub Worksheet_Change(ByVal Target As Range)でエラーとなります。
どのようなエラーメッセージが出るのでしょうか。
・ツリー全体表示

【78440】Re:セルに文字列が入力されたらマクロの...
発言  γ  - 16/9/23(金) 17:40 -

引用なし
パスワード
   標準モジュールにあるxxxでシート上のセル値を変更していませんか?
xxxの内容を示してみてはいかがですか?
・ツリー全体表示

【78439】セルに文字列が入力されたらマクロの実行
発言  北風  - 16/9/23(金) 16:43 -

引用なし
パスワード
   Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$N$5" And IsNumeric(Target) = True Then
call xxx
End If
End Sub
上記コードを見つけてN5に文字列を入力しXXXを実行作動させてみましたが、
Private Sub Worksheet_Change(ByVal Target As Range)でエラーとなります。
N5は結合されております(N5:Q5)
XXXは標準モジュールに記載されております
・ツリー全体表示

【78438】Re:Match関数の使い方
発言  γ  - 16/9/23(金) 10:52 -

引用なし
パスワード
   ところで、
> Range(Cells(3, 6), Cells(PL, 6))のところに計算式に
> =+A48&" "&B48&" "&C48&" "&D48がはいっているためデータが読み出しが
> できません。計算式がなく入力したものは検出できます。
の原因は判明したのですか?
式の結果に対してマッチするかどうかです、式があるかは無関係です。

急かす意図はないのですが、気にはなりました。
まあ、マイペースでゆっくり取り組んでください。

なお、むやみに全文引用せずに必要な範囲で引用するのが普通です。
気をつけた方がよろしいかと思いました。
それではこれで。
・ツリー全体表示

【78437】Re:Match関数の使い方
お礼  tomi  - 16/9/23(金) 10:41 -

引用なし
パスワード
   ▼γ さん:
>追加で少しコメントしておきます。
>
>On Error Resume Next
>としているのでエラーが隠蔽されますが、このケースでは少なくとも2種類のエラーがありえます。
>(1)マッチするものがないことによるエラー
>(2)セル範囲の指定に不備があって発生するエラー
>
>両方を区別せずに、見逃してしまうOn Error Resume Nextの使用は、
>できるだけ避けたほうが良いと思います。
>(実際、この場合は、エラーにならないので、(2)に気づかなかったのでしょう)
>
>---------------
>まず(2)については、
>  Sheet1がアクティブであるときに、
>      Sheet2.Range(Cells(1,1),Cells(5,1))
>  などと書くことによるエラー。(今回のケースはこれです。)
>      Sheet2.Range(Sheet1.Cells(1,1),Sheet1.Cells(5,1))
>  と書いているのと同じですから、Excel君が混乱を来すのです。
>こうしたものはむしろエラーになるべきなんです。
>
>---------------
>次に(1)ですが、
>AA = Application.WorksheetFunction.Match(ZRK, ws.Range(ws.Cells(3, 6), ws.Cells(PL, 6)), 0)
>ではなく、
>AA = Application.Match(ZRK, ws.Range(ws.Cells(3, 6), ws.Cells(PL, 6)), 0)
>とすることで、エラーで止まるのを避けることができます。
>
>該当が無い場合には、エラーを示す情報がAAに返りますから、
>If IsError(AA) Then などとして、マッチの有無を判定することができます。
>
>詳しくは、例えば、
>ht tps://www.moug.net/tech/exvba/0100035.html
>をごらんください。
ありがとうございました。確かにエラー回避はプログラム進行の為必要との
単純な考えでやってしまいました。どこにエラーがあるかわかれば非常に良いことです。もう一度じっくり勉強してみます。
・ツリー全体表示

【78436】Re:Match関数の使い方
発言  γ  - 16/9/22(木) 21:09 -

引用なし
パスワード
   追加で少しコメントしておきます。

On Error Resume Next
としているのでエラーが隠蔽されますが、このケースでは少なくとも2種類のエラーがありえます。
(1)マッチするものがないことによるエラー
(2)セル範囲の指定に不備があって発生するエラー

両方を区別せずに、見逃してしまうOn Error Resume Nextの使用は、
できるだけ避けたほうが良いと思います。
(実際、この場合は、エラーにならないので、(2)に気づかなかったのでしょう)

---------------
まず(2)については、
  Sheet1がアクティブであるときに、
      Sheet2.Range(Cells(1,1),Cells(5,1))
  などと書くことによるエラー。(今回のケースはこれです。)
      Sheet2.Range(Sheet1.Cells(1,1),Sheet1.Cells(5,1))
  と書いているのと同じですから、Excel君が混乱を来すのです。
こうしたものはむしろエラーになるべきなんです。

---------------
次に(1)ですが、
AA = Application.WorksheetFunction.Match(ZRK, ws.Range(ws.Cells(3, 6), ws.Cells(PL, 6)), 0)
ではなく、
AA = Application.Match(ZRK, ws.Range(ws.Cells(3, 6), ws.Cells(PL, 6)), 0)
とすることで、エラーで止まるのを避けることができます。

該当が無い場合には、エラーを示す情報がAAに返りますから、
If IsError(AA) Then などとして、マッチの有無を判定することができます。

詳しくは、例えば、
ht tps://www.moug.net/tech/exvba/0100035.html
をごらんください。
・ツリー全体表示

【78435】Re:Match関数の使い方
お礼  tomi  - 16/9/22(木) 15:15 -

引用なし
パスワード
   ▼γ さん:
>セル内の計算式がどうこうというのは、こちらでは不明です。
>説明が足りませんので。
>それよりもまず、セル範囲を正確に書くことが先決です。
>シートを特定しないセル範囲は、アクティブシートのそれとみなされてしまいます。
>どう書くか、例えば、以下。
>
>Sub test()
>  Dim ws As Worksheet
>  '他の変数の宣言は記載省略しました。きちんと宣言すべきです。
>  
>  For i = 1 To BB
>    Set ws = Workbooks("原料配合表.xlsb").Sheets(i)
>    PL = ws.Range("A1000").End(xlUp).Row
>    On Error Resume Next
>    AA = Application.WorksheetFunction.Match(ZRK, ws.Range(ws.Cells(3, 6), ws.Cells(PL, 6)), 0)
>  Next
>End Sub
ありがとうございました。どのブックのシートをはっきりさせてやってみます。
・ツリー全体表示

【78434】Re:Match関数の使い方
発言  γ  - 16/9/22(木) 14:28 -

引用なし
パスワード
   セル内の計算式がどうこうというのは、こちらでは不明です。
説明が足りませんので。
それよりもまず、セル範囲を正確に書くことが先決です。
シートを特定しないセル範囲は、アクティブシートのそれとみなされてしまいます。
どう書くか、例えば、以下。

Sub test()
  Dim ws As Worksheet
  '他の変数の宣言は記載省略しました。きちんと宣言すべきです。
  
  For i = 1 To BB
    Set ws = Workbooks("原料配合表.xlsb").Sheets(i)
    PL = ws.Range("A1000").End(xlUp).Row
    On Error Resume Next
    AA = Application.WorksheetFunction.Match(ZRK, ws.Range(ws.Cells(3, 6), ws.Cells(PL, 6)), 0)
  Next
End Sub
・ツリー全体表示

200 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free