!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part48
http://mevius.2ch.net/test/read.cgi/tech/1494890685/
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
Excel VBA 質問スレ Part49©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ bb2e-8SzA)
2017/06/26(月) 02:15:14.60ID:T3ylemnb036デフォルトの名無しさん (JP 0H16-CicO)
2017/06/29(木) 17:16:17.14ID:ye6KcLeHH >>35
面倒でも文書化して読んでもらうのがいいよ
読んで始めて、自分が何を欲しているか気づく場合もあるし
後は、プロトタイプかな
全部できて「これ、全然違うし」とか言われるリスクあるなら、そういうことやってみたらいいと思う
面倒でも文書化して読んでもらうのがいいよ
読んで始めて、自分が何を欲しているか気づく場合もあるし
後は、プロトタイプかな
全部できて「これ、全然違うし」とか言われるリスクあるなら、そういうことやってみたらいいと思う
37デフォルトの名無しさん (ドコグロ MMe1-zH8r)
2017/06/29(木) 19:36:46.27ID:tZRd6cgNM >>36
そう言う連中は要件定義書なんて読まんよ
そう言う連中は要件定義書なんて読まんよ
38デフォルトの名無しさん (ワッチョイ c206-nP2k)
2017/06/29(木) 20:02:23.80ID:eyQ8k34N0 このスレの人間って質問者置いてけぼりであーだこーだ言うのが多いけど、一番ムカつくのは、
肝心の質問者が自分のやりたい事はこういうことだって言わないこと。
少しは自分の質問に責任くらい持ちやがれ
肝心の質問者が自分のやりたい事はこういうことだって言わないこと。
少しは自分の質問に責任くらい持ちやがれ
39デフォルトの名無しさん (ワッチョイ c66f-WwN4)
2017/06/29(木) 20:20:17.81ID:XN0IVm4b0 こういった輩が多いから双方の軋轢が絶えないんだろな
先方はまったくの門外漢だ て前提で仕事を引き受けられない
相手も自分と同レベルだと信じて疑わない もしくは少し下ぐらい
初めて住宅を新築する顧客が、いきなり詳細設計図渡されて理解できるか?
ソッチで仕様書と図面引いてください って言ってるのと同様だぞ?
引き受けるからにはその仕事を請け負う責任も勿論だが
これから実施する作業の概要・概略を相手に理解してもらうテクニックだって
必要だろ それを持ち合わせないならサンプル品なり試作品なり作ってでも
相手と同じレベルで進捗を図るのが普通じゃ無いのか?
こっちはざっくり動きや結果を見越せるけれど、相手にもそれを要求するのは
傲慢でしかないんだが
いわんや、相手の業種・業態に依ってはコチラ側が思いもしないような入力・
操作が要求されるケースだってままある
仕様も要件も書き出せますよ なんてぇ企業相手ならおまえら不要だろ
社内で事足りるわ
も少し謙虚に成れんのか 会議だ仕様だ要件だなんてぇことに無駄な時間を
費やすぐらいなら、とっとと試作して「こうですか?」で何歩も進むだろ
いやすまん なんでもない
先方はまったくの門外漢だ て前提で仕事を引き受けられない
相手も自分と同レベルだと信じて疑わない もしくは少し下ぐらい
初めて住宅を新築する顧客が、いきなり詳細設計図渡されて理解できるか?
ソッチで仕様書と図面引いてください って言ってるのと同様だぞ?
引き受けるからにはその仕事を請け負う責任も勿論だが
これから実施する作業の概要・概略を相手に理解してもらうテクニックだって
必要だろ それを持ち合わせないならサンプル品なり試作品なり作ってでも
相手と同じレベルで進捗を図るのが普通じゃ無いのか?
こっちはざっくり動きや結果を見越せるけれど、相手にもそれを要求するのは
傲慢でしかないんだが
いわんや、相手の業種・業態に依ってはコチラ側が思いもしないような入力・
操作が要求されるケースだってままある
仕様も要件も書き出せますよ なんてぇ企業相手ならおまえら不要だろ
社内で事足りるわ
も少し謙虚に成れんのか 会議だ仕様だ要件だなんてぇことに無駄な時間を
費やすぐらいなら、とっとと試作して「こうですか?」で何歩も進むだろ
いやすまん なんでもない
40デフォルトの名無しさん (ワッチョイ c206-nP2k)
2017/06/29(木) 21:03:34.33ID:eyQ8k34N0 ここの人間は質問者から金貰ってるわけでもなんでもねーわ
41デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/06/29(木) 21:07:43.56ID:JWTkSooHM42デフォルトの名無しさん (オイコラミネオ MMd6-BlaP)
2017/06/29(木) 21:21:50.99ID:pDUcXkTQM コミュ障同志でケンカすんな
43デフォルトの名無しさん (ワッチョイ 6d2e-mQuD)
2017/06/29(木) 22:02:03.85ID:irMBslcI0 最近、趣味でVBAのプログラムを始めた初心者です
区切り記号を含むテキストデータを Split() を使って二次元配列に入れようと思っています。
テキストデータは、vbLf で改行、行内のデータは、vbTab で区切り です
<例: String 型の TextData の内容>
あああああ アアアアアアアアア
いい イイイイイ
ううううう ウウウ
(以下、同様の形式で全500行ある)
いろいろ宣言の仕方などを試した結果、次の方法でエラーなく実行できたのですが…
Dim tmpDim As Variant
Dim sqrDim(500) As Variant
tmpDim = Split( TextData, vbLf )
For i = 0 to UBound( tmpDim ) - 1
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
Next i
これでは、途中の38行目を読み込んだところ(i=37,j=1)で、
実行時エラー '9':
インデックスが有効範囲にありません
とのエラーが出て止まってしまいます。
(一次方向(行)には500個確保できていると思うので、なぜインデックスエラーなのか不思議です)
2回目のSplitの受けも、別の一次元配列で行い、後で二次元配列に格納すればいいとは思いますが
上手く二次元配列でSplitのデータを受けるやり方はあるのでしょうか? お手数ですが教えてください
区切り記号を含むテキストデータを Split() を使って二次元配列に入れようと思っています。
テキストデータは、vbLf で改行、行内のデータは、vbTab で区切り です
<例: String 型の TextData の内容>
あああああ アアアアアアアアア
いい イイイイイ
ううううう ウウウ
(以下、同様の形式で全500行ある)
いろいろ宣言の仕方などを試した結果、次の方法でエラーなく実行できたのですが…
Dim tmpDim As Variant
Dim sqrDim(500) As Variant
tmpDim = Split( TextData, vbLf )
For i = 0 to UBound( tmpDim ) - 1
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
Next i
これでは、途中の38行目を読み込んだところ(i=37,j=1)で、
実行時エラー '9':
インデックスが有効範囲にありません
とのエラーが出て止まってしまいます。
(一次方向(行)には500個確保できていると思うので、なぜインデックスエラーなのか不思議です)
2回目のSplitの受けも、別の一次元配列で行い、後で二次元配列に格納すればいいとは思いますが
上手く二次元配列でSplitのデータを受けるやり方はあるのでしょうか? お手数ですが教えてください
44デフォルトの名無しさん (ワッチョイ 066d-B6M/)
2017/06/29(木) 22:23:02.61ID:InemyE5a045デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/29(木) 22:33:09.86ID:+TVRrlUj0 >>43
これ通るの?
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
で sqrDim( i ) を2回splitしてる。
1回めは文字列のsplitだからいいけど、2回めは配列のsplitになってエラーになりそうだけど。
For j のループは不要。
あとついでに
For i = 0 to UBound( tmpDim ) - 1
だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
これ通るの?
For j = 0 to 1
sqrDim( i ) = Split( sqrDim( i ), vbTab )
Next j
で sqrDim( i ) を2回splitしてる。
1回めは文字列のsplitだからいいけど、2回めは配列のsplitになってエラーになりそうだけど。
For j のループは不要。
あとついでに
For i = 0 to UBound( tmpDim ) - 1
だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
46デフォルトの名無しさん (ワッチョイ 42aa-wjSU)
2017/06/29(木) 22:47:04.00ID:CQo0iGok0 >>43
こうでしょ
Dim tmpDim As Variant
Dim sqrDim As Variant
tmpDim = Split( TextData, vbLf )
ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
For i = LBound(tmpDim) to UBound( tmpDim )
sqrDim( i ) = Split( tmpDim( i ), vbTab )
Next i
sqrDimは2次元配列じゃなくて配列の配列になるけど、むしろこっちの方があとで楽だと思う。
こうでしょ
Dim tmpDim As Variant
Dim sqrDim As Variant
tmpDim = Split( TextData, vbLf )
ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
For i = LBound(tmpDim) to UBound( tmpDim )
sqrDim( i ) = Split( tmpDim( i ), vbTab )
Next i
sqrDimは2次元配列じゃなくて配列の配列になるけど、むしろこっちの方があとで楽だと思う。
4743 (ワッチョイ 6d2e-mQuD)
2017/06/29(木) 23:32:28.05ID:irMBslcI0 >>44-46
早々に回答ください、どうもありがとうございます。
いろいろ回答を頂いておきながら、大変申し訳ないのですが、
38行目のデータをよく見たところ、TAB区切りではなく、ここだけスペースが入っていました
(他は、各行に2個の要素があったのですが、ここだけ要素が1個でした)
そして、これを修正したら、エラーなく実行できました。
お手数をおかけし、申し訳ありませんでした。
おっしゃる通り、j のループは不要ですね。(いろいろ修正していて、j を使わなくなったようです)
> だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
いえ、ちゃんと最終行まで格納出来てました
(UBound()は要素数を表しているように思います)
> ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
ReDim は使ったことがないので、また調べてみます
以上、ありがとうございました。
早々に回答ください、どうもありがとうございます。
いろいろ回答を頂いておきながら、大変申し訳ないのですが、
38行目のデータをよく見たところ、TAB区切りではなく、ここだけスペースが入っていました
(他は、各行に2個の要素があったのですが、ここだけ要素が1個でした)
そして、これを修正したら、エラーなく実行できました。
お手数をおかけし、申し訳ありませんでした。
おっしゃる通り、j のループは不要ですね。(いろいろ修正していて、j を使わなくなったようです)
> だとTextDataの最終行のデータが配列に格納されないけど問題ないか?
いえ、ちゃんと最終行まで格納出来てました
(UBound()は要素数を表しているように思います)
> ReDim sqrDim(LBound(tmpDim), UBound(tmpDim))
ReDim は使ったことがないので、また調べてみます
以上、ありがとうございました。
4843 (ワッチョイ 6d2e-mQuD)
2017/06/29(木) 23:41:18.00ID:irMBslcI0 >>45
> これ通るの?
> For j = 0 to 1
> sqrDim( i ) = Split( sqrDim( i ), vbTab )
> Next j
これ、写し間違いでした。 2回目に Split するのは tmpDim でした
×: sqrDim( i ) = Split( sqrDim( i ), vbTab )
○: sqrDim( i ) = Split( tmpDim( i ), vbTab )
申し訳ありませんでした
> これ通るの?
> For j = 0 to 1
> sqrDim( i ) = Split( sqrDim( i ), vbTab )
> Next j
これ、写し間違いでした。 2回目に Split するのは tmpDim でした
×: sqrDim( i ) = Split( sqrDim( i ), vbTab )
○: sqrDim( i ) = Split( tmpDim( i ), vbTab )
申し訳ありませんでした
49デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/30(金) 00:06:21.55ID:pQmgso2J0 >>47
> (UBound()は要素数を表しているように思います)
一応言っておくと、これは間違い。
UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
TextDataが500行(vbLfが499個)だとしたら、tmpDimのインデックスは(0 to 499)になるから、UBound(tmpDim) は499を返す。
このコードのsqrDim(500)が全部埋まってるのであれば、TextDataは501行あるはず。
まあ結果がOKならいいんだけどね。
> (UBound()は要素数を表しているように思います)
一応言っておくと、これは間違い。
UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
TextDataが500行(vbLfが499個)だとしたら、tmpDimのインデックスは(0 to 499)になるから、UBound(tmpDim) は499を返す。
このコードのsqrDim(500)が全部埋まってるのであれば、TextDataは501行あるはず。
まあ結果がOKならいいんだけどね。
50デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/06/30(金) 00:09:11.22ID:pQmgso2J0 失礼、>>49に間違い。
sqrDim(500) だとsqrDimの要素数は501だから、全部埋まってるの場合のTextDataの行数は502行になるはず。
sqrDim(500) だとsqrDimの要素数は501だから、全部埋まってるの場合のTextDataの行数は502行になるはず。
5143 (ワッチョイ 6d2e-mQuD)
2017/06/30(金) 00:48:26.80ID:K3G7Sb4z0 >>49-50
> 一応言っておくと、これは間違い。
> UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
申し訳ないです。
おっしゃる通り、ググってみるとそのように書いてました。
なお、TextDataは実際には400行前後のため、偶然上手く動いているように見えてたのですね
(実際は、400〜499までループが回っており、タチの悪いバグになるところでした、感謝です)
前にC言語を少しやっていたので、同じ扱いだと思っていましたが違ってたんですね
わざわざありがとうございます。
> 一応言っておくと、これは間違い。
> UBound(tmpDim) は配列tmpDimのインデックスの最大値を返す。
申し訳ないです。
おっしゃる通り、ググってみるとそのように書いてました。
なお、TextDataは実際には400行前後のため、偶然上手く動いているように見えてたのですね
(実際は、400〜499までループが回っており、タチの悪いバグになるところでした、感謝です)
前にC言語を少しやっていたので、同じ扱いだと思っていましたが違ってたんですね
わざわざありがとうございます。
52デフォルトの名無しさん (ワッチョイ 42aa-wjSU)
2017/06/30(金) 00:56:40.46ID:6tFD7y9X053デフォルトの名無しさん (JP 0H92-9Mth)
2017/06/30(金) 10:48:30.68ID:cwrb3MSvH ここの強者はExcelVBAエキスパートの資格持ってるの?
簡単そうだから取ろうかなと思ってる
簡単そうだから取ろうかなと思ってる
54デフォルトの名無しさん (JP 0H16-CicO)
2017/06/30(金) 10:58:10.76ID:vRopsyNtH >>53
取ればいいんじゃないの?
取ればいいんじゃないの?
55デフォルトの名無しさん (ワッチョイ 5d73-BlaP)
2017/06/30(金) 11:59:14.93ID:p88B6ZFT0 そんなもんMOS以下の価値しかないと思うが…
56デフォルトの名無しさん (ワッチョイ 6d3d-nP2k)
2017/06/30(金) 17:12:37.88ID:cZqMSATW0 コンピュータ関連も色んな資格あるけど、ああいう資格を基準にして採用している所ってどれだけあるんだろ。
57デフォルトの名無しさん (ワッチョイ 066d-wjSU)
2017/06/30(金) 20:10:03.92ID:UW7c2V+i0 基準にはしないかな
あーできるんですねって程度。どちらにしても実地試験は受けてもらう
あーできるんですねって程度。どちらにしても実地試験は受けてもらう
58デフォルトの名無しさん (ワッチョイ c26f-CicO)
2017/06/30(金) 23:09:21.97ID:+ePBm/Xa0 俺、プログラムは作れるけど、試験は落ちそうだな。
DimとかRowとか、短い文字は打てるんだけど、
長いのは、普段コピペしてるから、打てない。
最近、やっとColumnsを間違えずに打てるようになったわ。
それまでは、Corums? ん? Colmns? え? Culomus? 違う?
Colums? わかんね。 もう諦めてコピペしよう、みたいな感じ。
DimとかRowとか、短い文字は打てるんだけど、
長いのは、普段コピペしてるから、打てない。
最近、やっとColumnsを間違えずに打てるようになったわ。
それまでは、Corums? ん? Colmns? え? Culomus? 違う?
Colums? わかんね。 もう諦めてコピペしよう、みたいな感じ。
59デフォルトの名無しさん (ワッチョイ 066d-dnIi)
2017/06/30(金) 23:13:28.48ID:UW7c2V+i0 プログラムの実技試験で暗記力が必要なのはそろそろどうかとは思う
60デフォルトの名無しさん (ワッチョイ 2e8f-wjSU)
2017/07/01(土) 00:25:54.92ID:ozDMgMeF0 10年選手だけど
フィボナッチとかハノイの塔とかソラで出できないぞ俺
フィボナッチとかハノイの塔とかソラで出できないぞ俺
61デフォルトの名無しさん (ワッチョイ 066d-B6M/)
2017/07/01(土) 00:29:13.54ID:QYfDEdV/0 それは数学の知識の問題だと思うので、別にできなくてもいいと思う。多分一生役に立たない
でも最小二乗法とか漸近線、偏差値など、統計学的な知識はあったほうが良いと思う
でも最小二乗法とか漸近線、偏差値など、統計学的な知識はあったほうが良いと思う
62デフォルトの名無しさん (ワッチョイ 4623-hx6n)
2017/07/01(土) 04:46:24.33ID:PtoY4rVn0 >>53
昔、某掲示板で質問した人に話の内容から初心者として扱ったらその資格持ってるとのことでびっくりしたことがある。
どんな資格でもそうだけど、そういうもんなんでしょう。
そうしないと受かる奴いなくなっちゃう。
昔、某掲示板で質問した人に話の内容から初心者として扱ったらその資格持ってるとのことでびっくりしたことがある。
どんな資格でもそうだけど、そういうもんなんでしょう。
そうしないと受かる奴いなくなっちゃう。
63デフォルトの名無しさん (ワッチョイ 4623-hx6n)
2017/07/01(土) 04:52:54.03ID:PtoY4rVn0 >>60
そんな問題が実際の案件に出てきた時に最適なコードが書ければ良いでしょ。
それにその程度の話ってググレば出てくるでしょ。
そんなのは何かあったよなと思うことが出来てググレればOK。
それよりも上手いやり方に気付かずにクソコード書く奴は多い。
そんな問題が実際の案件に出てきた時に最適なコードが書ければ良いでしょ。
それにその程度の話ってググレば出てくるでしょ。
そんなのは何かあったよなと思うことが出来てググレればOK。
それよりも上手いやり方に気付かずにクソコード書く奴は多い。
64デフォルトの名無しさん (オッペケ Sr71-UM0m)
2017/07/01(土) 08:01:59.81ID:JGSuKZu6r >>63
自分のクソは棚上げかクソw
自分のクソは棚上げかクソw
65デフォルトの名無しさん (ワッチョイ c123-BlaP)
2017/07/01(土) 08:05:36.28ID:3teBbQmJ0 >>64
お前は試験も仕事も両方苦手みたいだな
お前は試験も仕事も両方苦手みたいだな
66デフォルトの名無しさん (ワッチョイ 4211-zH8r)
2017/07/01(土) 08:23:17.10ID:qXTa/p8N0 >>57
実地試験ってどんなことやるの?
実地試験ってどんなことやるの?
67デフォルトの名無しさん (ワッチョイ 066d-wjSU)
2017/07/01(土) 08:38:38.91ID:QYfDEdV/0 >>66
支店名 状態 月 売上
A支店 3 200
B支店 3 10
C支店 3 500
A支店 4 300
B支店 閉店 4 0
C支店 4 600
4月の売上平均を求めよ(制限時間5分)
って感じ。
D1=(300+0+600)/3
にはたまげた。もちろん関数を使わない人はアウト
B支店を入れるかどうか疑問に思えば合格
支店名 状態 月 売上
A支店 3 200
B支店 3 10
C支店 3 500
A支店 4 300
B支店 閉店 4 0
C支店 4 600
4月の売上平均を求めよ(制限時間5分)
って感じ。
D1=(300+0+600)/3
にはたまげた。もちろん関数を使わない人はアウト
B支店を入れるかどうか疑問に思えば合格
68デフォルトの名無しさん (ワッチョイ 4211-zH8r)
2017/07/01(土) 08:58:05.68ID:qXTa/p8N069デフォルトの名無しさん (ワッチョイ 066d-wjSU)
2017/07/01(土) 08:59:25.55ID:QYfDEdV/0 >>68
あぁすまん、ここvbaスレか。Excelスレと思ってた。忘れてくれ
あぁすまん、ここvbaスレか。Excelスレと思ってた。忘れてくれ
70デフォルトの名無しさん (ワッチョイ b169-nP2k)
2017/07/01(土) 10:42:47.44ID:r7UjQGgF0 エクセルのある部分をリストボックスにしたいのですが、rowsourceで設定すると、間に空白が多くなった時に使いにくいです。
そこで下記のように空白だったら、リストに加えないとしたら、リストに何も出てきません。
どこがおかしいでしょうか? RowPN(i)には既にエクセルの1セルの値が167個入ってます。
i = 1
i1 = 1
Do Until i > 168
On Error Resume Next
If RowPN(i) <> "" Then
UF6ComboBox1.AddItem RowPN(i), i1
i1 = i1 + 1
End If
i = i + 1
Loop
そこで下記のように空白だったら、リストに加えないとしたら、リストに何も出てきません。
どこがおかしいでしょうか? RowPN(i)には既にエクセルの1セルの値が167個入ってます。
i = 1
i1 = 1
Do Until i > 168
On Error Resume Next
If RowPN(i) <> "" Then
UF6ComboBox1.AddItem RowPN(i), i1
i1 = i1 + 1
End If
i = i + 1
Loop
71デフォルトの名無しさん (ワッチョイ c26f-CicO)
2017/07/01(土) 11:20:29.10ID:PX/A+v/i0 VBAの試験って、やっぱ何らかの制限付きなんだろうか。
制限しないと、ソートにSQLとか、Worksheetfunctionとか、
Cells(1,1).Value="計算式"とか、正解だけど、試験の趣旨としてどうなの?
という答えが沢山出来てしまう。
制限しないと、ソートにSQLとか、Worksheetfunctionとか、
Cells(1,1).Value="計算式"とか、正解だけど、試験の趣旨としてどうなの?
という答えが沢山出来てしまう。
72デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/07/01(土) 11:27:20.68ID:+dYABl5A0 >>70
・RowPNの中身が全て""またはEmptyになっていないか。
Dubug.Printまたはローカルウィンドウでの確認を推奨する。
・リストボックスと言っているが変数はUF6ComboBox1で合っているか。
・RowPNの要素が(0 To 166)ないし(1 To 167)だとDoループがi=168までカウントするのでインデックスエラーになる。
For文の方が無難そうに思えるのと、ここでOn Error Resume Nextはどうかと感じる。
・RowPNの中身が全て""またはEmptyになっていないか。
Dubug.Printまたはローカルウィンドウでの確認を推奨する。
・リストボックスと言っているが変数はUF6ComboBox1で合っているか。
・RowPNの要素が(0 To 166)ないし(1 To 167)だとDoループがi=168までカウントするのでインデックスエラーになる。
For文の方が無難そうに思えるのと、ここでOn Error Resume Nextはどうかと感じる。
73デフォルトの名無しさん (ワッチョイ 0623-wjSU)
2017/07/01(土) 11:30:18.64ID:5ubPuGy00 >>70
セルから値をとってるならこれでいいと思われ
Dim i As Long
For i = 1 To 168
If Cells(i, 1) <> "" Then
ComboBox1.AddItem Cells(i, 1)
End If
Next
セルから値をとってるならこれでいいと思われ
Dim i As Long
For i = 1 To 168
If Cells(i, 1) <> "" Then
ComboBox1.AddItem Cells(i, 1)
End If
Next
74デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/07/01(土) 11:30:59.20ID:+dYABl5A0 >>72 3行目間違い。。
? Dubug.Print ○ Debug.Print
? Dubug.Print ○ Debug.Print
75デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/07/01(土) 11:45:10.97ID:+dYABl5A076デフォルトの名無しさん (ワッチョイ b169-nP2k)
2017/07/01(土) 11:48:18.71ID:r7UjQGgF077デフォルトの名無しさん (ワッチョイ c26f-CicO)
2017/07/01(土) 12:12:06.78ID:PX/A+v/i078デフォルトの名無しさん (ワッチョイ 0623-wjSU)
2017/07/01(土) 12:14:29.98ID:5ubPuGy0079デフォルトの名無しさん (ワッチョイ b169-nP2k)
2017/07/01(土) 12:28:18.39ID:r7UjQGgF0 >>78 オブジェクト名は間違うと動かなくなるので、いつもコピペしてるんですよ。
とりあえずシート使って逃げて、rowsourceでうまいこと動きました。
とりあえずシート使って逃げて、rowsourceでうまいこと動きました。
80デフォルトの名無しさん (ササクッテロラ Sp71-THY3)
2017/07/01(土) 14:17:52.99ID:zDfIbROqp >>61
数学の知識というより再帰関数とかのプログラム技術の問題
数学の知識というより再帰関数とかのプログラム技術の問題
81デフォルトの名無しさん (ワッチョイ c179-9Mth)
2017/07/01(土) 23:37:04.61ID:AhlbWWig0 こんばんわ、
シティーボーイズやってました、再帰しげるです
シティーボーイズやってました、再帰しげるです
82デフォルトの名無しさん (ワッチョイ bd8b-UM0m)
2017/07/02(日) 02:18:34.32ID:mbMXyeDF0 こんばんわ、
膣に挿入したら動きません、きたろうです
膣に挿入したら動きません、きたろうです
83デフォルトの名無しさん (ワッチョイ b169-nP2k)
2017/07/02(日) 05:10:18.40ID:7bfaC3yX0 突然 なんだ!
84デフォルトの名無しさん (アウアウウー Sa25-k1q/)
2017/07/03(月) 17:11:55.95ID:3aAVlqxCa 以下のプログラムで「該当するセルが見つかりません」となってしまいます。
該当するセル範囲のセルはすべて空白です。
期待する動作は、「B4:B6の範囲の空白セルにコメントを入れる」です。
Sub commentAddToBlankCells()
____On Error GoTo ERROR_ALL
____Range("B4:B6").SpecialCells(xlCellTypeBlanks).AddComment "目視確認"
____Exit Sub
ERROR_ALL:
____MsgBox Err.Description
End Sub
※Excel2010です。
該当するセル範囲のセルはすべて空白です。
期待する動作は、「B4:B6の範囲の空白セルにコメントを入れる」です。
Sub commentAddToBlankCells()
____On Error GoTo ERROR_ALL
____Range("B4:B6").SpecialCells(xlCellTypeBlanks).AddComment "目視確認"
____Exit Sub
ERROR_ALL:
____MsgBox Err.Description
End Sub
※Excel2010です。
8584 (アウアウウー Sa25-k1q/)
2017/07/03(月) 17:42:48.19ID:3aAVlqxCa Excelのバグのような気がしてきました。
86デフォルトの名無しさん (ブーイモ MMed-tH5o)
2017/07/03(月) 18:37:30.90ID:C0KljlGTM >>84
2007だけど、ActiveSheet.UsedRangeの範囲外のセルだとエラーになるっぽい。
2007だけど、ActiveSheet.UsedRangeの範囲外のセルだとエラーになるっぽい。
87デフォルトの名無しさん (ワッチョイ c206-nP2k)
2017/07/03(月) 20:07:31.53ID:Gbz1GVYR0 ここの板で質問するレベルでExcelになすりつけるのは100000年ほど早い
まぁそう言いたくなるときもあるんだがw
まぁそう言いたくなるときもあるんだがw
88デフォルトの名無しさん (ワッチョイ c123-BlaP)
2017/07/03(月) 20:26:22.35ID:NJa6/A120 それ範囲指定できるんだっけ?
89デフォルトの名無しさん (ワッチョイ 62ec-nP2k)
2017/07/03(月) 20:33:45.35ID:S8hpBEzs0 例えば、
そのセルの値が0より大きければセルA1をコピーし、そのセルに書式を貼り付け、
そのセルの値が0より小さければセルA2のコピーし、そのセルに書式を貼り付ける。
この程度の処理を数百のセルに行うのに結構な時間がかかる。
短時間で完了させるにはどうしたらいいんでしょうか?
ある程度のセル範囲ごとにまとめて書式貼り付けすればいいんでしょうか?
そのセルの値が0より大きければセルA1をコピーし、そのセルに書式を貼り付け、
そのセルの値が0より小さければセルA2のコピーし、そのセルに書式を貼り付ける。
この程度の処理を数百のセルに行うのに結構な時間がかかる。
短時間で完了させるにはどうしたらいいんでしょうか?
ある程度のセル範囲ごとにまとめて書式貼り付けすればいいんでしょうか?
90デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/07/03(月) 20:38:08.97ID:MkRtof65M >>89
正確な日本語でよろしく
正確な日本語でよろしく
91デフォルトの名無しさん (ワッチョイ 65c1-ZBdv)
2017/07/03(月) 20:39:25.48ID:u6VhpuAl0 Sub nisinsu()
Dim Z As Single, S As Long, N As String, A As String
Z = 100
S = 1
Do Until Z <= 0
N = Z Mod 2
Cells(S, 1) = Z
Cells(S, 2) = N
Z = Z \ 2
S = S + 1
A = N + A
Loop
Cells(1, 3) = A
End Sub
上の方で2進数について質問したものです
このコードである程度無事に解決しましたが、一つ分らないことがあります
Loop を抜けた後の Cells(1, 3) = A の所は Loopの一つ上の A = N + A によって 1100100 と正しい数字が表示されます
しかしこの A = の中を A = A + N というように A と N を逆にすると 10011 と全く別の数字になってしまいます
この理由がどうしてなのかを教えてください
Dim Z As Single, S As Long, N As String, A As String
Z = 100
S = 1
Do Until Z <= 0
N = Z Mod 2
Cells(S, 1) = Z
Cells(S, 2) = N
Z = Z \ 2
S = S + 1
A = N + A
Loop
Cells(1, 3) = A
End Sub
上の方で2進数について質問したものです
このコードである程度無事に解決しましたが、一つ分らないことがあります
Loop を抜けた後の Cells(1, 3) = A の所は Loopの一つ上の A = N + A によって 1100100 と正しい数字が表示されます
しかしこの A = の中を A = A + N というように A と N を逆にすると 10011 と全く別の数字になってしまいます
この理由がどうしてなのかを教えてください
92デフォルトの名無しさん (ワッチョイ bd8b-UM0m)
2017/07/03(月) 20:39:42.65ID:c364q6zP0 >>89
性格悪い日本語でよろしく
性格悪い日本語でよろしく
93デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/07/03(月) 20:45:47.19ID:MkRtof65M94デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/07/03(月) 20:54:20.38ID:MkRtof65M95デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/07/03(月) 21:15:28.35ID:TQ7WGTgT096デフォルトの名無しさん (ワッチョイ 62ec-nP2k)
2017/07/03(月) 21:15:43.91ID:S8hpBEzs097デフォルトの名無しさん (ワッチョイ 1911-Znx3)
2017/07/03(月) 21:28:10.61ID:3g7k10jb098デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/07/03(月) 21:40:24.58ID:MkRtof65M99デフォルトの名無しさん (ワッチョイ 066d-5V5Y)
2017/07/03(月) 21:49:40.34ID:wrAlhZZL0 >>96
条件付き書式が断片化してない?断片化ってのは勝手に作った言葉だけど・・・
例えば、A:Aに条件付き書式(=a1=1)を設定して、10行目を切り取って11行目に挿入したりすると
条件=A1=1
=$A$1:$A$10,$A$12:$A$1048576
条件=A11=1
=$A$11
のように分割される
一度条件付き書式の書式ルールの管理、「このワークシート」を見てみたほうがいいかも
条件付き書式が断片化してない?断片化ってのは勝手に作った言葉だけど・・・
例えば、A:Aに条件付き書式(=a1=1)を設定して、10行目を切り取って11行目に挿入したりすると
条件=A1=1
=$A$1:$A$10,$A$12:$A$1048576
条件=A11=1
=$A$11
のように分割される
一度条件付き書式の書式ルールの管理、「このワークシート」を見てみたほうがいいかも
100デフォルトの名無しさん (ブーイモ MMed-DhWx)
2017/07/03(月) 21:55:55.71ID:We00lT8WM そのセルにちゃんとワークシート名付けてる?
101デフォルトの名無しさん (ワッチョイ 62ec-nP2k)
2017/07/03(月) 22:20:14.51ID:S8hpBEzs0102デフォルトの名無しさん (ワッチョイ 62ec-nP2k)
2017/07/03(月) 22:23:39.09ID:S8hpBEzs0 今のコードはこんな感じです。
Public Sub シートの書式を設定する()
Dim iRow As Long, iCol As Long, LastRow As Long, ws As Worksheet, r As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
Set ws = ThisWorkbook.Worksheets("対象シート")
startRow = 4
LastRow = ws.Cells(Rows.Count, "B").End(xlUp).Row
For iRow = startRow To LastRow
For iCol = 4 To 100
Set r = ws.Cells(iRow, iCol)
If IsNumeric(r.Value) Then
If r.Value > 0 Then
r.Select
ws.Cells(1, "C").Copy
r.PasteSpecial Paste:=xlPasteFormats
DoEvents
ElseIf r.Value < 0 Then
r.Select
ws.Cells(2, "C").Copy
r.PasteSpecial Paste:=xlPasteFormats
DoEvents
End If
End If
Next iCol
Next iRow
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Public Sub シートの書式を設定する()
Dim iRow As Long, iCol As Long, LastRow As Long, ws As Worksheet, r As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
Set ws = ThisWorkbook.Worksheets("対象シート")
startRow = 4
LastRow = ws.Cells(Rows.Count, "B").End(xlUp).Row
For iRow = startRow To LastRow
For iCol = 4 To 100
Set r = ws.Cells(iRow, iCol)
If IsNumeric(r.Value) Then
If r.Value > 0 Then
r.Select
ws.Cells(1, "C").Copy
r.PasteSpecial Paste:=xlPasteFormats
DoEvents
ElseIf r.Value < 0 Then
r.Select
ws.Cells(2, "C").Copy
r.PasteSpecial Paste:=xlPasteFormats
DoEvents
End If
End If
Next iCol
Next iRow
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
103デフォルトの名無しさん (ワッチョイ c26f-CicO)
2017/07/03(月) 22:28:05.66ID:9w7qW4Z10104デフォルトの名無しさん (ワッチョイ c123-BlaP)
2017/07/03(月) 22:41:18.92ID:NJa6/A120 なんでいちいちdoeventsしてんの?
105デフォルトの名無しさん (ワッチョイ bd8b-UM0m)
2017/07/03(月) 22:43:07.60ID:c364q6zP0 あ〜万個増殖ね〜ありがちだわ〜
106デフォルトの名無しさん (ワッチョイ 62ec-nP2k)
2017/07/03(月) 22:46:45.91ID:S8hpBEzs0107デフォルトの名無しさん (ワッチョイ 65c1-ZBdv)
2017/07/03(月) 23:22:39.55ID:u6VhpuAl0108デフォルトの名無しさん (ワッチョイ c123-BlaP)
2017/07/03(月) 23:23:15.28ID:NJa6/A120 ん〜
まずはループが最終的に何回転してるのか見てみた方が良さそう
自分ならまず新しいファイルにコードをコピペしてゴミ掃除するが
まずはループが最終的に何回転してるのか見てみた方が良さそう
自分ならまず新しいファイルにコードをコピペしてゴミ掃除するが
109デフォルトの名無しさん (ワキゲー MM8a-I/sj)
2017/07/03(月) 23:58:29.09ID:MkRtof65M >>107
コレを動かしてみたらわかるよ
Sub nisinsu()
Dim Z As Single, S As Long, N As String, A As String
Dim AA As Single
Z = 100
S = 1
Do Until Z <= 0
N = Z Mod 2
Cells(S, 1) = Z
Cells(S, 2) = N
Z = Z \ 2
A = N + A
Cells(S, 4) = A
AA = AA + N
Cells(S, 5) = AA
S = S + 1
Loop
Cells(1, 3) = A
End Sub
コレを動かしてみたらわかるよ
Sub nisinsu()
Dim Z As Single, S As Long, N As String, A As String
Dim AA As Single
Z = 100
S = 1
Do Until Z <= 0
N = Z Mod 2
Cells(S, 1) = Z
Cells(S, 2) = N
Z = Z \ 2
A = N + A
Cells(S, 4) = A
AA = AA + N
Cells(S, 5) = AA
S = S + 1
Loop
Cells(1, 3) = A
End Sub
110デフォルトの名無しさん (ワッチョイ 4211-nP2k)
2017/07/04(火) 00:10:14.68ID:pX4cRUUJ0111デフォルトの名無しさん (ドコグロ MMa9-y/Rq)
2017/07/04(火) 05:36:03.11ID:JPw87neNM これって今何行あるの?
何万行もあって列数50あれば大分重くなると思うけど
何万行もあって列数50あれば大分重くなると思うけど
112デフォルトの名無しさん (ワッチョイ 0111-0bL8)
2017/07/04(火) 06:53:55.04ID:SZEZ7cdP0 6000回もselectとcopyしてりゃ遅くなるの当たり前
113デフォルトの名無しさん (オッペケ Sr71-nSMp)
2017/07/04(火) 08:12:48.47ID:n1qpisHfr 田のクラッカー
114デフォルトの名無しさん (アウアウエー Sa4a-Znx3)
2017/07/04(火) 10:15:18.62ID:hKxheJiwa セレクトなくしたら2/3ぐらいにはなりそうだな
まあどう考えてもコピペはロスがでかい
指定する書式はマクロの記録か大抵ググりゃ出てくるから調べんさい
まあどう考えてもコピペはロスがでかい
指定する書式はマクロの記録か大抵ググりゃ出てくるから調べんさい
115デフォルトの名無しさん (ワッチョイ 62ec-nP2k)
2017/07/04(火) 20:20:52.61ID:aFK9C0z90116デフォルトの名無しさん (ワッチョイ 62ec-nP2k)
2017/07/04(火) 20:21:31.96ID:aFK9C0z90117デフォルトの名無しさん (ワッチョイ 1911-Znx3)
2017/07/04(火) 23:04:48.45ID:n6RB6fUl0 >>116
頑張ってベターな方法探してね!
頑張ってベターな方法探してね!
118デフォルトの名無しさん (ワッチョイ c179-9Mth)
2017/07/05(水) 00:29:10.07ID:VBidwpfq0 ベタな方法を探す?
119デフォルトの名無しさん (アウアウウー Sa25-k1q/)
2017/07/05(水) 10:23:55.19ID:jMcI5nQfa ダブルクリックとシングルクリックを区別する処理を考えましたがあまり
美しくないです。もっとスマートな方法はありますか?
VDim isDoubleClick As Boolean
Dim cancelClick As Boolean
Private Sub CommandButton1_Click()
____Dim i As Long
____For i = 0 To 2048
________DoEvents
________If isDoubleClick = True Then
____________Exit Sub
________End If
____Next i
____If (cancelClick = False) Then
________' シングルクリック時の処理はここ
________Worksheets(1).Range("a1").Value = "シングルクリック"
____End If
____cancelClick = False
End Sub
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
____isDoubleClick = True
____' ダブルクリック時の処理はここ
____Worksheets(1).Range("a1").Value = "ダブルクリック"
____isDoubleClick = False
____cancelClick = True
End Sub
Private Sub UserForm_Initialize()
____isDoubleClick = False
____cancelClick = False
End Sub
美しくないです。もっとスマートな方法はありますか?
VDim isDoubleClick As Boolean
Dim cancelClick As Boolean
Private Sub CommandButton1_Click()
____Dim i As Long
____For i = 0 To 2048
________DoEvents
________If isDoubleClick = True Then
____________Exit Sub
________End If
____Next i
____If (cancelClick = False) Then
________' シングルクリック時の処理はここ
________Worksheets(1).Range("a1").Value = "シングルクリック"
____End If
____cancelClick = False
End Sub
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
____isDoubleClick = True
____' ダブルクリック時の処理はここ
____Worksheets(1).Range("a1").Value = "ダブルクリック"
____isDoubleClick = False
____cancelClick = True
End Sub
Private Sub UserForm_Initialize()
____isDoubleClick = False
____cancelClick = False
End Sub
120デフォルトの名無しさん (アウアウエー Sa4a-Znx3)
2017/07/05(水) 11:03:35.66ID:bK7Vkfgva121デフォルトの名無しさん (JP 0H16-CicO)
2017/07/05(水) 13:18:10.58ID:r0cXYB/2H >>119
内容と全然関係ないけど、全角スペースでインデントすれば削除されないよ
内容と全然関係ないけど、全角スペースでインデントすれば削除されないよ
122デフォルトの名無しさん (アウアウウー Sa25-k1q/)
2017/07/05(水) 16:49:43.67ID:F7dOY4NYa123デフォルトの名無しさん (ワッチョイ c26f-CicO)
2017/07/05(水) 22:43:43.51ID:kJzSrAyN0 セルの値を配列に入れる時、
セルが1つだけだと、一次元配列になっちゃうってひどくね。
セルが1つだけだと、一次元配列になっちゃうってひどくね。
124デフォルトの名無しさん (ワッチョイ 066d-Opov)
2017/07/05(水) 22:47:37.84ID:VdD8AIen0 次元数が変化するとめんどくさい時は、常に同じ次元数になるようにfunctionを噛ませる
125デフォルトの名無しさん (ワッチョイ bd8b-UM0m)
2017/07/05(水) 22:49:15.43ID:odMt6Ynp0 セルが2つだと二次元配列になっちゃうよ
126デフォルトの名無しさん (アウアウウー Sa25-k1q/)
2017/07/05(水) 23:46:14.85ID:F7dOY4NYa DAOとADOの使い分けを教えて!
127デフォルトの名無しさん (ワッチョイ f73d-1B52)
2017/07/06(木) 00:36:18.68ID:in8T4yu80 使い分けというかADOはDAOに比べて何かと便利だからADOだけ使えばいいんじゃないかな。
AccessだとデフォがDAOなんで使う事も多いけどエクセルで使うときのメリットは特に思い浮かばない。
AccessだとデフォがDAOなんで使う事も多いけどエクセルで使うときのメリットは特に思い浮かばない。
128デフォルトの名無しさん (アウアウウー Sa5b-pw7F)
2017/07/06(木) 00:50:14.75ID:J3gAfYSVa129デフォルトの名無しさん (ブーイモ MMfb-MhHl)
2017/07/06(木) 02:37:48.69ID:2ggUG7GkM >>123
Resizeで1行追加して、配列を1行減らせばいいんじゃないかと思った。
Resizeで1行追加して、配列を1行減らせばいいんじゃないかと思った。
130デフォルトの名無しさん (ワッチョイ d72b-KuRC)
2017/07/07(金) 06:50:33.44ID:k9X/9vlT0 すいません
パソコンのエクセル2016で作ったVBAをスマホで動かすことはできますか?
スマホでVBAの作成編集は無理のようなので
パソコンのエクセル2016で作ったVBAをスマホで動かすことはできますか?
スマホでVBAの作成編集は無理のようなので
131デフォルトの名無しさん (スプッッ Sd3f-nGAm)
2017/07/07(金) 07:44:52.11ID:6QLBDLc9d >>130
むしろ教えてもらいたい
むしろ教えてもらいたい
132デフォルトの名無しさん (ワッチョイ 7773-zf8i)
2017/07/07(金) 08:54:05.14ID:KQxBqvcO0 関数でがんばれ
133デフォルトの名無しさん (ワッチョイ bf23-M/n7)
2017/07/07(金) 21:24:02.96ID:IxSbuhab0134デフォルトの名無しさん (スプッッ Sdbf-kebf)
2017/07/07(金) 21:25:43.56ID:t0FXhP6Gd ノートでも画面狭く感じるのにスマホでなんてストイック過ぎる
135デフォルトの名無しさん (ワッチョイ ff8f-KuRC)
2017/07/07(金) 22:19:46.83ID:02peKi+J0 アリエッティだから…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… [BFU★]
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★2 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- ホリエモン、「持ち家=幸せという価値観は過去のもの」と断言「快適な住まいが欲しいなら、賃貸住宅を次々に替えていく」 [muffin★]
- 【悲報】大臣も遊んでるソシャゲFGOで全キャラピックアップ決定!!もうこれサ終するんかな!? [904880432]
- 【実況】博衣こよりのえちえち声優楽プロジェクト共同研究発表会🧪
- ほい、高市早苗さんが首相に就任してからの功績がこれね。これでもまだ高市さん叩ける…? [165981677]
- 自民党のヒゲ「日本側の無線でcopyとは言ったが了解という意味ではない」 [834922174]
- 高市早苗と日本政府、意味不明。外国相手もSNS世論工作で乗り切れると思い込んでいた模様。今からでも中国語で工作するべき [517791167]
- ケンモメンってなんでこんなに反日が多いの? [866936191]
