!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part62
https://mevius.5ch.net/test/read.cgi/tech/1561303297/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part63
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d3d0-EPXH)
2019/09/16(月) 19:34:59.04ID:emfTAhXr0334デフォルトの名無しさん (ワッチョイ 92da-GDtP)
2019/10/17(木) 22:03:59.43ID:uSN2w5EG0335デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 22:53:38.34ID:lelQayoPx シートモジュールとブックモジュールはただのクラスモジュールだからなぁ
コンストラクタとデストラクタがないぶんシートモジュールだけが特殊だが
コンストラクタとデストラクタがないぶんシートモジュールだけが特殊だが
336デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/17(木) 23:08:12.09ID:a6vhi3mO0 そう、オブジェクトが何か分かっていれば何の問題もない
しかし現実問題、Excelを使うのは一般事務。setっていつ使うのかなかなか理解できない層が中心なのだ
しかし現実問題、Excelを使うのは一般事務。setっていつ使うのかなかなか理解できない層が中心なのだ
337デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/17(木) 23:49:25.80ID:lelQayoPx implementsステートメントで組み込みのワークシートオブジェクトのインターフェースを継承すればシート用モジュールになります、って感じの仕組みならよかったよな
ユーザー定義クラスだって属性宣言を先頭に持って来ればクラス用モジュールになりますって感じの扱いで良かったし
ユーザー定義クラスだって属性宣言を先頭に持って来ればクラス用モジュールになりますって感じの扱いで良かったし
338デフォルトの名無しさん (ワッチョイ de10-u2an)
2019/10/18(金) 00:09:11.06ID:RulO09Tc0 オマイラのスーパーテクを俺に継承してくれや。
339デフォルトの名無しさん (アウアウウー Sa43-tIsl)
2019/10/18(金) 01:12:13.81ID:Kn6PgWdna340デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/18(金) 01:29:19.13ID:sk0uHZY+x PowerQueryとかPowerPivotとか標準的なExcelの組み込み機能で出来る作業をVBAでやってるのを見るけどああいうのも時間の無駄だわな
341デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/18(金) 06:28:43.63ID:rwfK/g890 vbaで何でも出来るから全部vbaでやる・・・それがシンプルでカッコイイ事だと思いこんでいた時期がありました
342デフォルトの名無しさん (ワッチョイ de10-4MLx)
2019/10/18(金) 08:24:07.64ID:RulO09Tc0 武器を持った奴が相手ならVBAを使わざるを得ない
343デフォルトの名無しさん (ワッチョイ de10-4MLx)
2019/10/18(金) 08:28:11.67ID:RulO09Tc0344デフォルトの名無しさん (ササクッテロル Sp47-5sgQ)
2019/10/18(金) 12:32:43.64ID:xgSV8V5dp >>343
そんなこと言わんと
VBAをとっとと卒業してC#辺りに入りなさいな。
他の言語も勉強するとVBAのコードの組み方もガラッと変わるよ。
例えば.Net系をやればクラスやインターフェースの理解がグッと深まるから
テスト項目も減らせる組み方が出来るし、変更点の改修も少ない組み方が出来るようになる。
そんなこと言わんと
VBAをとっとと卒業してC#辺りに入りなさいな。
他の言語も勉強するとVBAのコードの組み方もガラッと変わるよ。
例えば.Net系をやればクラスやインターフェースの理解がグッと深まるから
テスト項目も減らせる組み方が出来るし、変更点の改修も少ない組み方が出来るようになる。
345デフォルトの名無しさん (ワンミングク MM42-+Ykt)
2019/10/18(金) 12:35:35.40ID:YN+VnyL5M そういう所まで進みたい人とそうでも無い人がいるって事を理解しなよ
346デフォルトの名無しさん (ドコグロ MM32-tIsl)
2019/10/18(金) 12:45:18.66ID:dVFolCOsM >>345
どちらにせよVBAを極めても意味はないという帰結に違いはないな
どちらにせよVBAを極めても意味はないという帰結に違いはないな
347デフォルトの名無しさん (アウアウエー Saaa-1P7U)
2019/10/18(金) 12:47:17.38ID:as8acMuSa 本当にプログラミング好きな人はVBAじゃ満足しないだろ
VBAを極めるとはどういう状態かわかりませんが
VBAを極めるとはどういう状態かわかりませんが
348デフォルトの名無しさん (ワンミングク MM42-+Ykt)
2019/10/18(金) 12:55:00.41ID:YN+VnyL5M >>346
ちょっと理解出来ないです
ちょっと理解出来ないです
349デフォルトの名無しさん (ワッチョイ f345-UkKt)
2019/10/18(金) 14:34:31.34ID:C4vTbpVj0 2つ質問させてください
Sub Main()
Dim n As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws1cell As Range
Dim r As Long
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(Worksheets.Count)
n = ws1.Cells(Rows.Count, 5).End(xlUp).Row + 5
For r = 1 To ws2.Cells(Rows.Count, 5).End(xlUp).Row
Set ws1cell = ws1.Range("E:E").Find(ws2.Cells(r, 5).Value, lookat:=xlWhole)'項目名が違い、達成率が100%でない場合は開始日・終了日・達成率を更新
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then
ws1cell.Range(ws1.Cells(n, 8), ws1.Cells(n, 10)).Value = ws2.Range(ws2.Cells(r, 8), ws2.Cells(r, 10)).Value
n = n + 1
Else'達成度が進んだ場合は開始日・終了日・達成度を更新
If ws1cell.Value = ws2.Cells(r, 5).Value And ws1cell.Offset(0, 3) < ws2.Cells(r, 8) Then
ws1cell.Offset(0, 3) = ws2.Cells(r, 8)
ws1cell.Offset(0, 4) = ws2.Cells(r, 9)
ws1cell.Offset(0, 5) = ws2.Cells(r, 10)
End If
End If
Next r
End Sub
項目名が違う時にエラーが出てしまいます
If ws1cell is nothingの部分で変数を解放しているから問題なのかと考えていましたが、ws1cell = "" , 0に書き換えてもウォッチウィンドウで見ると
set ws1cellを通った後もnothingのままになっていました
setを通れば変数を定義出来ると思っていたのですが、どのようにすれば解決できますか?
よろしくお願いします
Sub Main()
Dim n As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws1cell As Range
Dim r As Long
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(Worksheets.Count)
n = ws1.Cells(Rows.Count, 5).End(xlUp).Row + 5
For r = 1 To ws2.Cells(Rows.Count, 5).End(xlUp).Row
Set ws1cell = ws1.Range("E:E").Find(ws2.Cells(r, 5).Value, lookat:=xlWhole)'項目名が違い、達成率が100%でない場合は開始日・終了日・達成率を更新
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then
ws1cell.Range(ws1.Cells(n, 8), ws1.Cells(n, 10)).Value = ws2.Range(ws2.Cells(r, 8), ws2.Cells(r, 10)).Value
n = n + 1
Else'達成度が進んだ場合は開始日・終了日・達成度を更新
If ws1cell.Value = ws2.Cells(r, 5).Value And ws1cell.Offset(0, 3) < ws2.Cells(r, 8) Then
ws1cell.Offset(0, 3) = ws2.Cells(r, 8)
ws1cell.Offset(0, 4) = ws2.Cells(r, 9)
ws1cell.Offset(0, 5) = ws2.Cells(r, 10)
End If
End If
Next r
End Sub
項目名が違う時にエラーが出てしまいます
If ws1cell is nothingの部分で変数を解放しているから問題なのかと考えていましたが、ws1cell = "" , 0に書き換えてもウォッチウィンドウで見ると
set ws1cellを通った後もnothingのままになっていました
setを通れば変数を定義出来ると思っていたのですが、どのようにすれば解決できますか?
よろしくお願いします
350デフォルトの名無しさん (ワッチョイ f345-UkKt)
2019/10/18(金) 14:35:51.85ID:C4vTbpVj0 改行エラーが出てしまったため2つに分けました
VBAを使い始めて1ヶ月弱なのですがC#でエクセルを操作出来るようになりたいと考えております
VBAで作ったプログラムを元にして、C#を学ぶ方法は無いでしょうか?
書き方が全然違うとの話を聞いたので、諦めて最初から覚えるしかないかと途方に暮れております
よろしくお願いします
VBAを使い始めて1ヶ月弱なのですがC#でエクセルを操作出来るようになりたいと考えております
VBAで作ったプログラムを元にして、C#を学ぶ方法は無いでしょうか?
書き方が全然違うとの話を聞いたので、諦めて最初から覚えるしかないかと途方に暮れております
よろしくお願いします
351デフォルトの名無しさん (ワッチョイ 92a2-r0zP)
2019/10/18(金) 14:58:09.86ID:irJy6XEP0 なんでvbaでできる事をいちいちC#でやろうとするか意味解らんよ
352デフォルトの名無しさん (スッップ Sd32-UkKt)
2019/10/18(金) 15:40:17.44ID:71CpEOK5d 今後C#を使う予定であれば、VBAで出来る事だとしてもC#を使う時間を増やした方が習得が早いと思ったからです
353デフォルトの名無しさん (ワッチョイ 1ef7-tmOE)
2019/10/18(金) 19:07:24.11ID:Kd4kiXAf0354デフォルトの名無しさん (スププ Sd32-YrLK)
2019/10/18(金) 19:07:29.23ID:7YrisXmNd 文法が全く違う言語だから何をどう頑張ろうがベースにはできない。
せいぜい同じ結果を出せるかどうかの演習材料にしかならんよ。
せいぜい同じ結果を出せるかどうかの演習材料にしかならんよ。
355デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/18(金) 19:11:29.96ID:vO06UtuM0 >>350
覚えるっていうか移植先の作法に従って書き換えるだけ
覚えるっていうか移植先の作法に従って書き換えるだけ
356デフォルトの名無しさん (ワッチョイ 1ef7-V+wO)
2019/10/18(金) 19:17:45.06ID:Kd4kiXAf0 >>349 書き直すけど
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then は
ws1cellがNothingのときじゃないと通らない。なのにそのあとでws1cell.Range〜とかws1cell.Offsetなんてやると当然エラーになる。
Not ws1cell Is Nothing みたいに反転させないと。
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then は
ws1cellがNothingのときじゃないと通らない。なのにそのあとでws1cell.Range〜とかws1cell.Offsetなんてやると当然エラーになる。
Not ws1cell Is Nothing みたいに反転させないと。
357デフォルトの名無しさん (ワンミングク MM42-+Ykt)
2019/10/18(金) 19:35:18.82ID:YN+VnyL5M セルがどういう時にnothingになるのか分かって条件に指定してるのか怪しい気がする
358デフォルトの名無しさん (ササクッテロル Sp47-5sgQ)
2019/10/18(金) 19:38:22.84ID:xgSV8V5dp >>350
VBAやって一ヶ月ならそのままVBAやっておけばいいよ。別に急いでるわけでもないんでしょ?
VBAやってツールの幾つかでも作って、コードがそらで書けるようになったらまずVB.Netをやる。
文法はそっくりだけど構成が違うし見たこともない命令も沢山あるから多分苦労すると思う。
でもここさえ乗り越えてしまえばObject指向の何たるかが大体解るようになるからそうしたらC#に入ればいいよ。
C#はVBA→VB.Netのときとは逆に構成がVB.Netとよく似ていて文法が違う。あと型が厳しい。
でも、ま、VB.Netを覚えてしまえばC#も7割方理解したって言えると思う。
何も手を着けてない状態なら最初からC#をやることを勧めるけど
折角VBA始めたんだから遠回りにはなるかも知れないけどそういう楽な方法もあるよ。
VBAやって一ヶ月ならそのままVBAやっておけばいいよ。別に急いでるわけでもないんでしょ?
VBAやってツールの幾つかでも作って、コードがそらで書けるようになったらまずVB.Netをやる。
文法はそっくりだけど構成が違うし見たこともない命令も沢山あるから多分苦労すると思う。
でもここさえ乗り越えてしまえばObject指向の何たるかが大体解るようになるからそうしたらC#に入ればいいよ。
C#はVBA→VB.Netのときとは逆に構成がVB.Netとよく似ていて文法が違う。あと型が厳しい。
でも、ま、VB.Netを覚えてしまえばC#も7割方理解したって言えると思う。
何も手を着けてない状態なら最初からC#をやることを勧めるけど
折角VBA始めたんだから遠回りにはなるかも知れないけどそういう楽な方法もあるよ。
359デフォルトの名無しさん (ドコグロ MMea-VRky)
2019/10/18(金) 20:19:32.44ID:L2N4rS5+M それ以前に>>349は
> 項目名が違う時にエラーが出てしまいます
じゃなくてどの行でどんなエラーが出てるのかを書けよ
ID:Kd4kiXAf0は超親切だからレスしてくれてるけど普通はスルーされて終わりだよ
> 項目名が違う時にエラーが出てしまいます
じゃなくてどの行でどんなエラーが出てるのかを書けよ
ID:Kd4kiXAf0は超親切だからレスしてくれてるけど普通はスルーされて終わりだよ
360デフォルトの名無しさん (ワッチョイ 6f02-UkKt)
2019/10/18(金) 21:48:21.62ID:/2Um4idM0361デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/18(金) 21:50:15.03ID:vO06UtuM0362デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/18(金) 23:10:26.23ID:3qufjhb3x >>361
もっと細かく言うとDimでやっているのは定義ではなく、あらかじめ定義されたデータ型の適用を宣言してその型に適合したメモリ領域を確保することなんだけどな
未知の型を宣言するとエンジン側で型検査できずにコンパイルエラーになることを考えたら分かる
もっと細かく言うとDimでやっているのは定義ではなく、あらかじめ定義されたデータ型の適用を宣言してその型に適合したメモリ領域を確保することなんだけどな
未知の型を宣言するとエンジン側で型検査できずにコンパイルエラーになることを考えたら分かる
363デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/18(金) 23:16:13.52ID:1ynBc/Lo0 >>360
そういう目的があるならまず覚えるべきはSQLだね
VBAだろうがJavaだろうが.Netだろうが
どの言語をやっていてもデータベースを扱う限り
SQLはまず使わないことがない。
ま、中にはEntityFreamworkなんてSQLを使わずにDBに同期してデータを
引っ張るなんて場合もあったりするけどSQLは最初の内に覚えておいて絶対損はしないよ。
そういう目的があるならまず覚えるべきはSQLだね
VBAだろうがJavaだろうが.Netだろうが
どの言語をやっていてもデータベースを扱う限り
SQLはまず使わないことがない。
ま、中にはEntityFreamworkなんてSQLを使わずにDBに同期してデータを
引っ張るなんて場合もあったりするけどSQLは最初の内に覚えておいて絶対損はしないよ。
364デフォルトの名無しさん (ドコグロ MM32-tIsl)
2019/10/18(金) 23:22:21.64ID:dVFolCOsM365デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 00:34:54.51ID:UvKzTNAx0 >>364
そこは割り切り。
どうせどんな言語やってたってちょろっとしたツールを作るには
VBAでやった方が手っ取り早いことの方が多いんだから。
どの仕事場でも大概Excelは入っているしね。
それにVB系は癖が強いから他言語の習得を阻害するというのも
個人の適応能力やセンスによるものも大きいからちょっと何とも言えないし。
むしろ俺みたいに適応力やセンスが皆無なら
やれ構造化言語だ、object指向だ、関数型言語だって変わるたびにチンプンカンプンなところから始めるから
結局否応なくその言語に合わせることになるんだけどね。
そこは割り切り。
どうせどんな言語やってたってちょろっとしたツールを作るには
VBAでやった方が手っ取り早いことの方が多いんだから。
どの仕事場でも大概Excelは入っているしね。
それにVB系は癖が強いから他言語の習得を阻害するというのも
個人の適応能力やセンスによるものも大きいからちょっと何とも言えないし。
むしろ俺みたいに適応力やセンスが皆無なら
やれ構造化言語だ、object指向だ、関数型言語だって変わるたびにチンプンカンプンなところから始めるから
結局否応なくその言語に合わせることになるんだけどね。
366デフォルトの名無しさん (ワッチョイ 6bce-S3Tg)
2019/10/19(土) 02:56:34.09ID:Z3LWqSJp0 .netを始める上での壁は文法や型なんかより膨大なクラスを把握することだからVBでもC#でも手間は変わらん
しかも日々増殖したり仕様が変わったりするから手に負えない
しかも日々増殖したり仕様が変わったりするから手に負えない
367デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/19(土) 05:58:33.57ID:4RrPMtib0368デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 06:05:45.30ID:UvKzTNAx0 >>367
ちょい前までExcelに入るんじゃないかって噂で騒がれてたPython、あれ関数型言語だよ
ちょい前までExcelに入るんじゃないかって噂で騒がれてたPython、あれ関数型言語だよ
369デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/19(土) 06:21:12.47ID:4RrPMtib0370デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 06:47:40.57ID:UvKzTNAx0 うーん、なんて言うか
Microsoftが出してる言語、複数やったことがある人なら何となく知ってると思うんだけど
何か中途半端にとどめておくのが好きみたいな傾向があって、
例えばVBAや旧VB6なんかでもObject指向の概念は
取り入れてるんだけどインターフェースはあるけど
.Netでいう継承は出来ないとか
.Netでも関数型言語の概念は取り入れててlinqやrambda式が使えるけどデータ分析や機械学習が
出来ないって訳じゃないけど苦手だったり。
次に何か出るときはその変のことが統合されて
いい感じになったものが出るんだろうけど
多分次もその次に出て来る新しい概念を
中途半端に取り入れたところで落ち着くような
そんなことを繰り返すような気がするね。
Microsoftが出してる言語、複数やったことがある人なら何となく知ってると思うんだけど
何か中途半端にとどめておくのが好きみたいな傾向があって、
例えばVBAや旧VB6なんかでもObject指向の概念は
取り入れてるんだけどインターフェースはあるけど
.Netでいう継承は出来ないとか
.Netでも関数型言語の概念は取り入れててlinqやrambda式が使えるけどデータ分析や機械学習が
出来ないって訳じゃないけど苦手だったり。
次に何か出るときはその変のことが統合されて
いい感じになったものが出るんだろうけど
多分次もその次に出て来る新しい概念を
中途半端に取り入れたところで落ち着くような
そんなことを繰り返すような気がするね。
371デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 06:54:51.77ID:a0xT/TLW0372デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 07:39:52.38ID:UvKzTNAx0373デフォルトの名無しさん (アウアウエー Saaa-mdgP)
2019/10/19(土) 07:43:44.99ID:VlF8OMgza ここの人たちはどんなシステム作ろうとしてるんだ
事務処理をちょい効率化したい程度の簡単なプログラムならVBAが最高
事務処理をちょい効率化したい程度の簡単なプログラムならVBAが最高
374デフォルトの名無しさん (ワッチョイ 124f-5sgQ)
2019/10/19(土) 08:08:42.95ID:UvKzTNAx0 >>373
そうなんだよね。
よく「別言語の〜でやれば〜行で出来るのに」って
言う人がいるけどあれは違うと思う。
VBAは凄く間口が広い言語で
EXCELが有ればどこでも組める言語。
手軽だから何かをちょろっとやらせるには
非常に使い勝手のいい言語なんだよね。
特にExcelが絡んだときは。
間口が広いってことは初心者からお年寄りまで
誰にでも優しい言語だからそりゃ至らない部分も沢山あるけど
他の言語で簡単に出来る部分でExcelが苦手な部分を
どうやっていい感じに作りこんで行くかを考えるのもまた醍醐味。
例えばXNAとかでテトリス作った後でもう一回
じゃ、今度はVBAで作って見ようかなと思わせる
何かがある言語だと思う。
そうなんだよね。
よく「別言語の〜でやれば〜行で出来るのに」って
言う人がいるけどあれは違うと思う。
VBAは凄く間口が広い言語で
EXCELが有ればどこでも組める言語。
手軽だから何かをちょろっとやらせるには
非常に使い勝手のいい言語なんだよね。
特にExcelが絡んだときは。
間口が広いってことは初心者からお年寄りまで
誰にでも優しい言語だからそりゃ至らない部分も沢山あるけど
他の言語で簡単に出来る部分でExcelが苦手な部分を
どうやっていい感じに作りこんで行くかを考えるのもまた醍醐味。
例えばXNAとかでテトリス作った後でもう一回
じゃ、今度はVBAで作って見ようかなと思わせる
何かがある言語だと思う。
375デフォルトの名無しさん (ドコグロ MM33-VRky)
2019/10/19(土) 08:10:42.89ID:Mtyg747cM376デフォルトの名無しさん (アウアウウー Sa43-r0zP)
2019/10/19(土) 10:54:26.76ID:CSoOYtrTa VBAのいいところはほぼ会社のPCで普通にはいっているExcelでいろんなことができるようになることだろ
C#だなんだっていうやつは職場のPCにかってにVSとかいれていいとでも思ってるのかな
それをわかってないバカが多すぎ
C#だなんだっていうやつは職場のPCにかってにVSとかいれていいとでも思ってるのかな
それをわかってないバカが多すぎ
377デフォルトの名無しさん (スフッ Sd32-S3Tg)
2019/10/19(土) 11:14:07.78ID:Vb23X7hcd データの整理とか手作業でやらされてるのを、ちょっと自動化して楽したいだけなのに、なんでC#とか使わなあかんの
378デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 11:32:54.08ID:a0xT/TLW0379デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/19(土) 11:43:29.38ID:ZEihazemx ちょっとした処理のためにCOMのOfficeのGUIを起動させ続けなきゃいけないってのがVBAの最大の難点でしよ
単なるデータ整理をする環境として見るとOfficeは高機能すぎるし効率が悪い
PowerShellなんてWindows標準でSDKとCUIがインストールされてるしマルチプロセスもOKだからな
単なるデータ整理をする環境として見るとOfficeは高機能すぎるし効率が悪い
PowerShellなんてWindows標準でSDKとCUIがインストールされてるしマルチプロセスもOKだからな
380デフォルトの名無しさん (ササクッテロル Sp47-5sgQ)
2019/10/19(土) 12:03:08.48ID:hNMTCzKgp Powershellは.NetFramework抜いたらただのshell
.NetFrameworkにへばりついてるただの寄生虫
.NetFrameworkにへばりついてるただの寄生虫
38249 (スップ Sd52-Nocg)
2019/10/19(土) 12:06:19.27ID:EjAyXMTtd38349 (スップ Sd52-Nocg)
2019/10/19(土) 12:09:07.46ID:EjAyXMTtd ちなみにここはVBAのスレであってExcelブックをどうにかしたいスレじゃない。
でも、なぜか競合しないのにVBAでないものを書く人が沸いてくるね。
でも、なぜか競合しないのにVBAでないものを書く人が沸いてくるね。
384デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 12:09:32.04ID:a0xT/TLW0385デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/19(土) 12:10:48.45ID:a0xT/TLW0386デフォルトの名無しさん (アウアウエー Saaa-mdgP)
2019/10/19(土) 12:29:53.54ID:Tgsi24Yea パワーシェルってなんだよ
難しいな
難しいな
387デフォルトの名無しさん (アウアウエー Saaa-mdgP)
2019/10/19(土) 12:37:43.59ID:Tgsi24Yea 理解したわ
388デフォルトの名無しさん (スフッ Sd32-FOpr)
2019/10/19(土) 13:01:01.88ID:pCXt87yDd389デフォルトの名無しさん (アークセー Sx47-vS/Z)
2019/10/19(土) 13:21:58.93ID:ZEihazemx >>388
俺は逆に発注側だけど、Excelの方が都合が良いというより、Excelしか想像できない奴に要件整理のタスクを与えて社内稟議まで通してRFP出してしまう感じ
Excelで作ろうが他のシステムで作ろうが発注側は中身が理解できないから取捨選択すらしてない
俺は逆に発注側だけど、Excelの方が都合が良いというより、Excelしか想像できない奴に要件整理のタスクを与えて社内稟議まで通してRFP出してしまう感じ
Excelで作ろうが他のシステムで作ろうが発注側は中身が理解できないから取捨選択すらしてない
390デフォルトの名無しさん (ワッチョイ 6bce-S3Tg)
2019/10/19(土) 13:22:25.60ID:Z3LWqSJp0 ある意味閉じた環境だからテストが楽なんだよ
もちろん完全なサンドボックスではないけど
もちろん完全なサンドボックスではないけど
39149 (スップ Sd52-Nocg)
2019/10/19(土) 13:27:49.07ID:EjAyXMTtd392デフォルトの名無しさん (ブーイモ MM5b-4MLx)
2019/10/19(土) 13:37:35.97ID:cIlA6SsdM csc教えてくれてありがとう。世界が広がったわ。
エクセルで社内chatアプリとか作り放題できそう。
エクセルで社内chatアプリとか作り放題できそう。
393デフォルトの名無しさん (ワッチョイ 2701-U7Hu)
2019/10/19(土) 23:16:31.79ID:Ryiq5UZK0 A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていなければハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていなければハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
394デフォルトの名無しさん (ワッチョイ 2701-U7Hu)
2019/10/19(土) 23:20:25.07ID:Ryiq5UZK0 ↑393です。間違えました。訂正します
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
395デフォルトの名無しさん (ワッチョイ 2701-U7Hu)
2019/10/19(土) 23:20:42.32ID:Ryiq5UZK0 ↑393です。間違えました。訂正します
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。
G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?
Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")
'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub
ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)
Dim Filepath
Filepath = pas_kom1
Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
396デフォルトの名無しさん (ワッチョイ 1259-YrLK)
2019/10/19(土) 23:27:37.60ID:yen3fKlK0 ハイパーリンクでどこへ飛ぼうとしているのか?
天国か?
天国か?
397デフォルトの名無しさん (オッペケ Sr47-UVSK)
2019/10/20(日) 04:33:33.09ID:9oZ0eOj0r mychkbook.activate
range~
range~
398デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/20(日) 14:29:15.27ID:udtUjyhnx >>395
やりたいことはこういうことかな?
処理の内容からみて、GoToでエラーハンドラに飛ばす必要はないと思う
' 開いているブックの集合に対してループを回し、順番にmyChkbookにセットして名前を調べ、test1.xlsxが見つかったらループを終了する
Dim myChkbook As Workbook
For Each myChkbook In Workbooks
If myChkbook.Name = "test1.xlsx" Then Exit For
Next myChkbook
' ループが終了した段階でmyChkbookにセットされているブックの名前がtest1.xlsxでない場合、test1.xlsxが開かれていないことを意味するので、test1.xlsxを開いてmyChkbookにセットする
If myChkbook.Name <> "test1.xlsx"
Then Set myChkbook = Workbooks.Open(pas_kom1)
' myChkbookをアクティブにしてハイパーリンクをフォローする
myChkbook.Activate
Range("G4").Hyperlinks(1).Follow NewWindow:=True
やりたいことはこういうことかな?
処理の内容からみて、GoToでエラーハンドラに飛ばす必要はないと思う
' 開いているブックの集合に対してループを回し、順番にmyChkbookにセットして名前を調べ、test1.xlsxが見つかったらループを終了する
Dim myChkbook As Workbook
For Each myChkbook In Workbooks
If myChkbook.Name = "test1.xlsx" Then Exit For
Next myChkbook
' ループが終了した段階でmyChkbookにセットされているブックの名前がtest1.xlsxでない場合、test1.xlsxが開かれていないことを意味するので、test1.xlsxを開いてmyChkbookにセットする
If myChkbook.Name <> "test1.xlsx"
Then Set myChkbook = Workbooks.Open(pas_kom1)
' myChkbookをアクティブにしてハイパーリンクをフォローする
myChkbook.Activate
Range("G4").Hyperlinks(1).Follow NewWindow:=True
399デフォルトの名無しさん (アウアウウー Sa43-hJjz)
2019/10/20(日) 17:59:43.40ID:WrbRE/qYa どうせ設定とかじゃね
400デフォルトの名無しさん (ワッチョイ 92ae-ZGIR)
2019/10/22(火) 08:37:21.30ID:Ppw3/Jpc0 プログラムじゃなくて、プログラミング言語とは…驚いた
学生の頃、友人がyaccとか字句解析とか構文解析とか言ってたが、その世界か…分からん
スーパー中学生誕生、プログラミング言語わずか数週間で開発、
U-22プログラミング・コンテスト2019 2019/10/21
https://www.bcnretail.com/market/detail/20191021_142131.html
「もっと人間にとって扱いやすい、自分の言語をつくってみたかった」。
10月20日に東京の秋葉原コンベンションホールで開催された第40回「U-22プログラミング・コンテスト2019」の
最終審査会で、見事、経済産業大臣賞(総合)を受賞した開成中学校3年の上原直人さん(15歳)は、
独自プログラミング言語「Blawn」を発表した。
IT業界の経営者など、並みいる審査員を驚かせたのは、完成度の高さはもちろんのこと、今年8月からわずか
数週間で完成させたスピードだった。
一次審査の応募期間7月1日〜9月2日に着想から開発、完成まで一人で仕上げたという。
◆C言語を使ったのは今年7月
それまでPythonを使っていたという上原さんは発表の中で、「今年の7月か8月にC++を始めたが、扱いにくかった。
もっと可読性の高い構文とメモリの安全性や速度を高めたいと思った」と、開発のきっかけについて語った。
質疑応答で審査員から、「7月にC++を使ったということは、Blawnはそれ以降につくられたということですか?」
と聞かれて、上原さんが「7月中旬に構想して構文解析を行って、プログラムを書き始めたのは8月ごろ」と答えると、
会場にどよめきが起きた。文句なしの受賞だった。
上原さんは、ほかにもスポンサー企業のデジタルガレージとサイボウズ2社の賞と、当日の模様を配信した
ニコニコ生放送の視聴者による賞など4冠を達成した。
Blawnの特徴は、型名の記述が一切不要、構文の可読性が高い、すべての関数/クラスがC++でいうところの
テンプレート関数/クラス、コンパイル速度と実行速度が速い、メモリが安全などだ。
また、Blawnの言語名は「Blue Lawn(青い芝)」からもじったもので、隣の芝が青く見えるほど、既存の言語の
不満を解消できるような良い言語にしたい気持ちを込めたという心憎い演出もあった。
学生の頃、友人がyaccとか字句解析とか構文解析とか言ってたが、その世界か…分からん
スーパー中学生誕生、プログラミング言語わずか数週間で開発、
U-22プログラミング・コンテスト2019 2019/10/21
https://www.bcnretail.com/market/detail/20191021_142131.html
「もっと人間にとって扱いやすい、自分の言語をつくってみたかった」。
10月20日に東京の秋葉原コンベンションホールで開催された第40回「U-22プログラミング・コンテスト2019」の
最終審査会で、見事、経済産業大臣賞(総合)を受賞した開成中学校3年の上原直人さん(15歳)は、
独自プログラミング言語「Blawn」を発表した。
IT業界の経営者など、並みいる審査員を驚かせたのは、完成度の高さはもちろんのこと、今年8月からわずか
数週間で完成させたスピードだった。
一次審査の応募期間7月1日〜9月2日に着想から開発、完成まで一人で仕上げたという。
◆C言語を使ったのは今年7月
それまでPythonを使っていたという上原さんは発表の中で、「今年の7月か8月にC++を始めたが、扱いにくかった。
もっと可読性の高い構文とメモリの安全性や速度を高めたいと思った」と、開発のきっかけについて語った。
質疑応答で審査員から、「7月にC++を使ったということは、Blawnはそれ以降につくられたということですか?」
と聞かれて、上原さんが「7月中旬に構想して構文解析を行って、プログラムを書き始めたのは8月ごろ」と答えると、
会場にどよめきが起きた。文句なしの受賞だった。
上原さんは、ほかにもスポンサー企業のデジタルガレージとサイボウズ2社の賞と、当日の模様を配信した
ニコニコ生放送の視聴者による賞など4冠を達成した。
Blawnの特徴は、型名の記述が一切不要、構文の可読性が高い、すべての関数/クラスがC++でいうところの
テンプレート関数/クラス、コンパイル速度と実行速度が速い、メモリが安全などだ。
また、Blawnの言語名は「Blue Lawn(青い芝)」からもじったもので、隣の芝が青く見えるほど、既存の言語の
不満を解消できるような良い言語にしたい気持ちを込めたという心憎い演出もあった。
401デフォルトの名無しさん (ワッチョイ 92a2-r0zP)
2019/10/22(火) 15:11:43.53ID:qPForpUI0 なぜ天才は日本語プログラミング言語を作ってくれないのか
402デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/22(火) 15:18:35.17ID:N/F1Z5u20 日本語プログラム言語あるけど流行ってない
403デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 15:19:56.38ID:xfWb2k0X0 変数に2バイト文字使えるだけでもかなりありがたいぞ
404デフォルトの名無しさん (アウアウウー Sa43-hJjz)
2019/10/22(火) 15:30:45.72ID:xJDh6jyea >>401
日本語が曖昧で向いてないだろ
日本語が曖昧で向いてないだろ
405デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/22(火) 15:40:40.34ID:9HPDColwx 自然言語のルールそのままでプログラミング言語を実装するわけじゃないから日本語が曖昧云々ってのはズレてる
英語のit とかtheyとかbeだって曖昧極まりないし
英語のit とかtheyとかbeだって曖昧極まりないし
406デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/22(火) 16:09:09.07ID:GMYZfzoF0407デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 16:09:15.44ID:xfWb2k0X0 >>404みたいなのは何も考えてない+自分に自信を持てないアホだから相手しても時間の無駄だぞ
408デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 16:17:32.52ID:xfWb2k0X0409デフォルトの名無しさん (オッペケ Sr47-zzXu)
2019/10/22(火) 17:34:47.60ID:wz2D8YEyr410デフォルトの名無しさん (ワッチョイ 1201-VRky)
2019/10/22(火) 17:37:00.61ID:GMYZfzoF0 >>408
それこそVBAでも使えるしVisual Studioで使えるC/C++, C#, VB.NETはもとより、GCCとかPython3でも使える
それこそVBAでも使えるしVisual Studioで使えるC/C++, C#, VB.NETはもとより、GCCとかPython3でも使える
411デフォルトの名無しさん (オイコラミネオ MM8f-XaGA)
2019/10/22(火) 17:42:31.34ID:lfmCyloCM vlookupを最下行まで入れたくて、検索範囲を絶対参照にしたいんだけどできるの?
$maxrow$じゃだめだよね
$maxrow$じゃだめだよね
412デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/22(火) 18:05:19.82ID:N/F1Z5u20 >>411
.Rows.Count
.Rows.Count
413デフォルトの名無しさん (ワッチョイ 92da-GDtP)
2019/10/22(火) 19:26:57.40ID:yzv1f2K60 108万行探すつもりかよww
A:Aとかじゃダメなのか。
A:Aとかじゃダメなのか。
414デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 19:34:37.46ID:xfWb2k0X0 100行しかデータが入ってなくても、A:Aみたいに列全体にすれば自動的にA1:A100みたいに解釈してくれるよ
415デフォルトの名無しさん (スッップ Sd32-Nocg)
2019/10/22(火) 20:37:15.07ID:8AVeU+tzd416デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/22(火) 20:49:46.38ID:IKwAwtn1x >>415
ApplicationレベルのWorkbookActivateイベントで何らかの処理を噛ませている可能性があるから、Activateメソッドが無意味とは言いきれない
ApplicationレベルのWorkbookActivateイベントで何らかの処理を噛ませている可能性があるから、Activateメソッドが無意味とは言いきれない
417デフォルトの名無しさん (ワッチョイ f335-S3Tg)
2019/10/22(火) 20:51:16.87ID:xfWb2k0X0 それは考えすぎw
ハンドラまで作れる人ならこんな質問しないよ
ハンドラまで作れる人ならこんな質問しないよ
418デフォルトの名無しさん (JP 0H82-S3Tg)
2019/10/22(火) 21:38:55.73ID:tIwQFwn0H Excelで、「行ごとに違う色をつけるが、1行目だけ何も色を付けない」というVBAの書き方を教えてくんさい。
419デフォルトの名無しさん (アウアウウー Sa43-tIsl)
2019/10/22(火) 21:46:01.16ID:lomrvhbna >>418
https://support.office.com/ja-jp/article/-1-行おきまたは-1-列おきに色を設定する-30002ce0-7a1c-4d70-a70c-4b6232f09f5e
VBAなど不要
どうしても一発でやりたいならマクロの記録を使えばいい
https://support.office.com/ja-jp/article/-1-行おきまたは-1-列おきに色を設定する-30002ce0-7a1c-4d70-a70c-4b6232f09f5e
VBAなど不要
どうしても一発でやりたいならマクロの記録を使えばいい
420デフォルトの名無しさん (ワッチョイ 9268-S3Tg)
2019/10/22(火) 21:48:09.80ID:fx5uI0000 >>418
3行目から始まる、4行ごとのsannpuru
色(65535の部分)はマクロの記録で取ってくれ
あともう少し真面目に聞いたほうが回答が尽きやすい
For i = 3 To 100 Step 4
Rows(i & ":" & i).Interior.Color = 65535
Next
End Sub
3行目から始まる、4行ごとのsannpuru
色(65535の部分)はマクロの記録で取ってくれ
あともう少し真面目に聞いたほうが回答が尽きやすい
For i = 3 To 100 Step 4
Rows(i & ":" & i).Interior.Color = 65535
Next
End Sub
421デフォルトの名無しさん (JP 0H82-S3Tg)
2019/10/22(火) 22:45:35.38ID:tIwQFwn0H >>420
すみません&有り難うございます。
具体的な目的を書かずに適当に質問してしまったのですが、やりたいことは
1.行ごとに違う色を入れる
2.1行目だけ何もしない(色を変えない)
3.2についてはIF文を使う
なのですが、3.が上手くいきません。
*************************************************************************:
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500 '最大行数
y = 300 '最大列数
For i = 1 To z '繰り返し処理を使い、変数は1〜500
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22 'セル範囲の指定
Next i '500行目までを22番色で埋める
For i = 1 To z Step 2 '1行飛ばしで500行目までを13番色で埋める
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 13 'セル範囲の指定
Next i
End Sub
**********************************************************************↓こういう感じのIF文を入れたい
If i = 1 Then '1行目だけ何もしない
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 00
Else
すみません&有り難うございます。
具体的な目的を書かずに適当に質問してしまったのですが、やりたいことは
1.行ごとに違う色を入れる
2.1行目だけ何もしない(色を変えない)
3.2についてはIF文を使う
なのですが、3.が上手くいきません。
*************************************************************************:
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500 '最大行数
y = 300 '最大列数
For i = 1 To z '繰り返し処理を使い、変数は1〜500
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22 'セル範囲の指定
Next i '500行目までを22番色で埋める
For i = 1 To z Step 2 '1行飛ばしで500行目までを13番色で埋める
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 13 'セル範囲の指定
Next i
End Sub
**********************************************************************↓こういう感じのIF文を入れたい
If i = 1 Then '1行目だけ何もしない
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 00
Else
422デフォルトの名無しさん (ワッチョイ 237c-HAen)
2019/10/22(火) 23:10:48.22ID:N/F1Z5u20 >>421
Ifにする必要がわからない
Range(Cells(1, 1), Cells(1, y)).Interior.ColorIndex = 0 を最後に入れるか、
最初に入れてForの開始行を1にしなければいいと思うんだが
上手くいかないとはどういかないの?
Ifにする必要がわからない
Range(Cells(1, 1), Cells(1, y)).Interior.ColorIndex = 0 を最後に入れるか、
最初に入れてForの開始行を1にしなければいいと思うんだが
上手くいかないとはどういかないの?
423デフォルトの名無しさん (ワッチョイ 124b-+Ykt)
2019/10/22(火) 23:10:49.55ID:Qb6PF4Ej0 そもそも2行目からスタートすればいいのでは
424デフォルトの名無しさん (アークセー Sx47-UVSK)
2019/10/22(火) 23:11:06.82ID:IKwAwtn1x 縞模様のテーブルスタイルをあらかじめ定義しておいて、テーブル変換してスタイルを適用してからテーブルを範囲に転換するのが一番楽だよ
425デフォルトの名無しさん (ワッチョイ 9268-S3Tg)
2019/10/23(水) 06:33:53.41ID:3xysxys80 >>421
ifは見づらいだけだよ
100%、forを2から始めた方が良い
For i = 1 To z '繰り返し処理を使い、変数は1〜500
if i >1 then
'ここに全部入れる
endif
Next i
ifは見づらいだけだよ
100%、forを2から始めた方が良い
For i = 1 To z '繰り返し処理を使い、変数は1〜500
if i >1 then
'ここに全部入れる
endif
Next i
426デフォルトの名無しさん (ワントンキン MM42-vsgv)
2019/10/23(水) 08:42:06.06ID:F6dTtsAKM >>421
範囲内を塗るだけなら、最初のFor〜Nextはいらない。
範囲全体を22番で塗った後に奇数行に処理するのではなく、
範囲全体を13番で塗った後に偶数行に処理する、
とすれば、1行目の処理のIf文いらない。
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500
y = 300
Range(Cells(2, 1), Cells(z, y)).Interior.ColorIndex = 13
For i = 2 To z Step 2
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22
Next i
End Sub
>2.1行目だけ何もしない(色を変えない)
っていうのは元々色が付いていたらその色から変えてはいけないって意味だよね。
そうすると
1行目を含めて塗った後、勝手にInterior.ColorIndex = 00であったとと決めつけて処理するのはよろしくない。
範囲内を塗るだけなら、最初のFor〜Nextはいらない。
範囲全体を22番で塗った後に奇数行に処理するのではなく、
範囲全体を13番で塗った後に偶数行に処理する、
とすれば、1行目の処理のIf文いらない。
Sub xxxxxxx()
Dim i As Integer
Dim z As Integer
Dim y As Integer
z = 500
y = 300
Range(Cells(2, 1), Cells(z, y)).Interior.ColorIndex = 13
For i = 2 To z Step 2
Range(Cells(i, 1), Cells(i, y)).Interior.ColorIndex = 22
Next i
End Sub
>2.1行目だけ何もしない(色を変えない)
っていうのは元々色が付いていたらその色から変えてはいけないって意味だよね。
そうすると
1行目を含めて塗った後、勝手にInterior.ColorIndex = 00であったとと決めつけて処理するのはよろしくない。
427デフォルトの名無しさん (ワッチョイ 6f87-7R73)
2019/10/23(水) 08:44:11.12ID:u2hf1X8z0 >>422-425
有難うございます。
間違いなく、Forのところを2行目からにする方が簡潔でいいと思うのですが、無理矢理if文を入れるとするとどうすべきかを知りたかった部分もあったので、大変助かりました。
有難うございます。
間違いなく、Forのところを2行目からにする方が簡潔でいいと思うのですが、無理矢理if文を入れるとするとどうすべきかを知りたかった部分もあったので、大変助かりました。
428デフォルトの名無しさん (ワッチョイ 6f87-7R73)
2019/10/23(水) 08:56:18.27ID:u2hf1X8z0429デフォルトの名無しさん (ワッチョイ 1ef7-V+wO)
2019/10/23(水) 09:28:03.44ID:zKPC6jha0 奇遇判定ならIfよりSelect Caseで分けると楽かな
Dim cngRng As Excel.Range
Set cngRng = Excel.Application.Range("A1:E20")
'範囲から上一列を除外
Set cngRng = cngRng.Offset(1, 0).Resize(cngRng.Rows.Count - 1, cngRng.Columns.Count)
Dim colorNum As Long
Dim r As Excel.Range
For Each r In cngRng.Rows
Select Case r.Row Mod 2 '行番号を2で割った余り
Case 0
colorNum = 1 '1=Black
Case 1
colorNum = 6 '6=Yellow
End Select
r.Interior.ColorIndex = colorNum
Next r
Dim cngRng As Excel.Range
Set cngRng = Excel.Application.Range("A1:E20")
'範囲から上一列を除外
Set cngRng = cngRng.Offset(1, 0).Resize(cngRng.Rows.Count - 1, cngRng.Columns.Count)
Dim colorNum As Long
Dim r As Excel.Range
For Each r In cngRng.Rows
Select Case r.Row Mod 2 '行番号を2で割った余り
Case 0
colorNum = 1 '1=Black
Case 1
colorNum = 6 '6=Yellow
End Select
r.Interior.ColorIndex = colorNum
Next r
430デフォルトの名無しさん (ワントンキン MM42-+Ykt)
2019/10/23(水) 10:14:44.78ID:pOBwJdgAM リーダブルコードとか読んでみたらいいんじゃないか
431デフォルトの名無しさん (ワッチョイ 6bce-S3Tg)
2019/10/23(水) 10:35:16.84ID:Bv/wwg6O0 z = 500 '最大行数
For r = 2 To z Step 2
'偶数
Next
For r = 3 To z Step 2
'奇数
Next
For r = 2 To z Step 2
'偶数
Next
For r = 3 To z Step 2
'奇数
Next
432デフォルトの名無しさん (ワッチョイ 371a-8Pqf)
2019/10/23(水) 10:39:27.17ID:9YAnqBFd0 Rangeをつかってセルの範囲を指定した後に
条件を付け加えて条件に合うまで自動で繰り返し処理を行って条件通りになった時に選択セルに文字や数字を入れるにはその下にIfとかで条件を増やしていけばいいの?
条件を付け加えて条件に合うまで自動で繰り返し処理を行って条件通りになった時に選択セルに文字や数字を入れるにはその下にIfとかで条件を増やしていけばいいの?
433デフォルトの名無しさん (オッペケ Sr47-UVSK)
2019/10/23(水) 12:32:05.46ID:YTHJUc03r >>432
条件が簡単で範囲が狭ければ上にあるようにselect caseが分かりやすい
for each c in range("a5:b20")
select case c
case 1
c=c+1
end select
next
条件が簡単で範囲が狭ければ上にあるようにselect caseが分かりやすい
for each c in range("a5:b20")
select case c
case 1
c=c+1
end select
next
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★2 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★3 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【EV新税】最大2万4千円で検討 28年から、普及妨げると異論も [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 【悲報】高市内閣、閣議決定後の文書を修正。木原官房長官が謝罪 [834922174]
- 【悲報】高市早苗、被災民に対し「自分の命くらいは自分で守ってくださいね」と切り捨てし大炎上 [339712612]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 🏡
