!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:T3ylemnb04743 (ワッチョイ 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 アリエッティだから…
136デフォルトの名無しさん (ワッチョイ 778b-QU0D)
2017/07/07(金) 23:07:11.35ID:tdv0VtnU0 ネゴシックスだから…
137デフォルトの名無しさん (ワッチョイ 97ea-okny)
2017/07/07(金) 23:13:49.66ID:q3zfwuJv0 vbaってエクセル用の言語?
他にも使えるの?
他にも使えるの?
138デフォルトの名無しさん (ワッチョイ bf6d-LaqR)
2017/07/07(金) 23:24:32.16ID:IHJ5BTGs0 アクセスやワードでも使えるよ
アクセスvbaはたまによく使う。SQL覚えたほうがいいけど
ワードはワード自体使わん
アクセスvbaはたまによく使う。SQL覚えたほうがいいけど
ワードはワード自体使わん
139デフォルトの名無しさん (ワッチョイ d701-LW04)
2017/07/07(金) 23:41:29.01ID:cLxiai6C0 初歩的な質問で、すみません。
vbaの公式本で独学で勉強中なのですが、
なぜこうなるのかわかりません。
よければ教えてほしいです。
不明点:
@なぜnumがセルa1〜a3だと認識されるのか。
b1〜b3も記述しているので、b1〜b3と認識されないのはなぜか。
Aこういうもんだと言われればそれまでなのですが、
ほかにもnum以外に自動認識されるような用語はあるのでしょうか。
Sub sampel()
Range("b1") = percent(Range("a1"))
Range("b2") = percent(Range("a2"))
Range("b3") = percent(Range("a3"))
End Sub
Function percent(num) As String
percent = num / 100 & "%"
End Function
vbaの公式本で独学で勉強中なのですが、
なぜこうなるのかわかりません。
よければ教えてほしいです。
不明点:
@なぜnumがセルa1〜a3だと認識されるのか。
b1〜b3も記述しているので、b1〜b3と認識されないのはなぜか。
Aこういうもんだと言われればそれまでなのですが、
ほかにもnum以外に自動認識されるような用語はあるのでしょうか。
Sub sampel()
Range("b1") = percent(Range("a1"))
Range("b2") = percent(Range("a2"))
Range("b3") = percent(Range("a3"))
End Sub
Function percent(num) As String
percent = num / 100 & "%"
End Function
140デフォルトの名無しさん (ワッチョイ ff8f-KuRC)
2017/07/07(金) 23:52:29.75ID:02peKi+J0 関数 percent(num) で呼び出しもとで
引数 numに Range("a1") をセット(厳密には違うか)してるから
って釣りだよな
引数 numに Range("a1") をセット(厳密には違うか)してるから
って釣りだよな
141デフォルトの名無しさん (ワッチョイ bf6d-LaqR)
2017/07/07(金) 23:55:59.29ID:IHJ5BTGs0 >>139
残念ながらかなり根本的な事がわかっていない
function〜はユーザー定義関数っつって、処理をひとまとめにしたもの
numってのは変数名。これは自分で決めるもので、
「num」でも「namu」でも「ナンバー」でもなんでもいい。
「sub」「if」みたいな単語は予約語と言ってそれらは使えないんだけど、まぁ何となく分かるだろう
毎回'こう書くのがめんどくさいから
Range("b1") = Range("a1") / 100 & "%"
'functionを定義して、使い回しできるようにしているだけの話
Range("b1") = percent(Range("a1"))
function作るのめんどくさくね?
と思ったかもしれないけど、それは何もわかっていないだけ
素直にこういうもんだと覚えてくれ
残念ながらかなり根本的な事がわかっていない
function〜はユーザー定義関数っつって、処理をひとまとめにしたもの
numってのは変数名。これは自分で決めるもので、
「num」でも「namu」でも「ナンバー」でもなんでもいい。
「sub」「if」みたいな単語は予約語と言ってそれらは使えないんだけど、まぁ何となく分かるだろう
毎回'こう書くのがめんどくさいから
Range("b1") = Range("a1") / 100 & "%"
'functionを定義して、使い回しできるようにしているだけの話
Range("b1") = percent(Range("a1"))
function作るのめんどくさくね?
と思ったかもしれないけど、それは何もわかっていないだけ
素直にこういうもんだと覚えてくれ
142デフォルトの名無しさん (ワッチョイ d701-LW04)
2017/07/07(金) 23:57:08.34ID:cLxiai6C0 すみません。意味が分かりました。
143デフォルトの名無しさん (ワッチョイ 9f06-1B52)
2017/07/07(金) 23:58:31.41ID:J/by2x1N0 >num以外に自動認識されるような用語
自動認識されるような用語って何?初めて聞いた
自動認識されるような用語って何?初めて聞いた
144デフォルトの名無しさん (ワッチョイ bf6d-LaqR)
2017/07/08(土) 00:00:19.52ID:lNWyFXj50 >>142
良かった、頑張ってねぇ〜
良かった、頑張ってねぇ〜
145デフォルトの名無しさん (ワッチョイ ff8f-KuRC)
2017/07/08(土) 00:06:47.50ID:13H3LMpq0146デフォルトの名無しさん (ワッチョイ f791-nB+A)
2017/07/08(土) 00:07:48.82ID:ieaMtMqy0 >>143
多分だが、引数を理解できてなくて
numに勝手にマッピングされてる、みたいに思ったんじゃないか
なんか勉強の順番おかしいんじゃない?
もっと前のフェーズでの学習が抜け落ちたまま次進んでる気がする
多分だが、引数を理解できてなくて
numに勝手にマッピングされてる、みたいに思ったんじゃないか
なんか勉強の順番おかしいんじゃない?
もっと前のフェーズでの学習が抜け落ちたまま次進んでる気がする
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- なんかさっきからフェイロンのステージ曲が頭から離れないんだが
- 【画像】小泉防衛大臣、とんでもない写真が発掘される [834922174]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ3🧪
- 【安倍晋三】中国船4隻が領海侵入 [828897501]
- パックご飯「サトウのごはん」、2026年3月から値上げ。値上げ発表は今年3度目 [663766621]
- えちえち女だけど
