Excel VBA 質問スレ Part50 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7e6d-ffY6)
垢版 |
2017/08/27(日) 12:40:17.57ID:LjjEWylk0
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※関連スレ
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/

※前スレ
Excel VBA 質問スレ Part49©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498410914/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2デフォルトの名無しさん (ワッチョイ a511-P7rv)
垢版 |
2017/08/27(日) 13:54:51.09ID:jYGHj9310
いちおつしないとおちちゃうよ
2017/08/27(日) 15:00:10.00ID:e4TdDFEN0
http://soleil-lielos.net/image/o05.jpg
4デフォルトの名無しさん (アウアウウー Sa91-xxBf)
垢版 |
2017/08/27(日) 16:42:30.51ID:TgR8VSWoa
初心者です。お時間がありましたら、アドバイス願います。
「自分のペースでゆったり学ぶ EXCEL VBA」という本を使って
勉強しています。シートを任意の場所にコピーするという項目で、
エラーが出てしまいます。

Sub 納品書シート作成()
 ThisWorkbook.Worksheets("納品書").Copy _
After := ThisWorkbook.Worksheets(3)
End Sub

これを実行すると、「修正候補:式」と出て、「After :=」の部分が赤色になります。
何が問題なのでしょうか。よろしければ教えてください。

EXCEL2010を使用しております。
2017/08/27(日) 17:08:53.71ID:WmqrsSrM0
>>4
こっちも2010
そのプロシージャまんまコピーして(勿論「納品書」シートも作って)実行したけど正常終了
念のためワークシート数を2枚にして実行すればエラーになるけどそれはインデックスが有効な範囲にないというエラーで
そちらのエラーにはならない。

一応確認しておくけど、VBEditorの画面で上のデバッグ(D)からコンパイルをしてエラーは無い?
2017/08/27(日) 17:09:02.52ID:LjjEWylk0
>>4
時間がないやつは最初からアドバイスなんて出来ない。読むのめんどくさいだけだからそういう社交辞令は書かないほうが良い

で、2010だけどエラーが出なかった。式はおかしくないはず
Worksheets(3) は、3つめのシートを表す。シートが3つ以下だとエラーが立つが、その場合は「インデックス~」のエラーになる
もし可能ならブックごとアップロードしてほしい
2017/08/27(日) 17:42:10.42ID:jYGHj9310
>>4
改行のアンダーバーの前にスペース入れ忘れてるとかそんなんは?
8デフォルトの名無しさん (アウアウウー Sa91-xxBf)
垢版 |
2017/08/27(日) 18:33:58.27ID:TgR8VSWoa
>5,6,7
ありがとうございます。
デバックというのを試してみましたが、同じような結果になります。

ファイルをアップロードしてみました。Dkeyは1111です。
http://www.dotup.org/uploda/www.dotup.org1351357.xlsx.html
2017/08/27(日) 18:52:31.15ID:LjjEWylk0
>>4>>8
よく分からない。普通にうまくいく(シート「納品書」がなかったからテキトーに作ったけど)
http://i.imgur.com/NeVGWfS.png
2017/08/27(日) 19:12:47.61ID:e4TdDFEN0
>>8
マクロを含むファイルは xlsm で保存しないとダメじゃね?
2017/08/27(日) 19:19:16.69ID:uEidIgYqa
うむ。
xlsxで保存するとマクロが消えるよ。
2017/08/27(日) 20:15:32.32ID:HYoDzU2+0
>>4
出版社のページでダウンロードしてきたらどうでしょうか?
正誤表は無いみたいですね。
2017/08/27(日) 22:32:38.03ID:WmqrsSrM0
>>8
まず最初にエクスプローラーのツール→フォルダーオプションの
表示タブで”登録されている拡張子は表示しない”のチェック外せ。
んで、拡張子xlsxとxlsmの違いについてVBAのその入門書の最初から読んで
勉強し直せ
2017/08/27(日) 23:11:29.74ID:y/dGwO3j0
vbaってpcのスペック関係あるん?
オフィス2010の32ビットでメモリー4gで全てのシートの枠線を一括して色変えろってのをやってるけど
すぐ動作しなくなるんだよね、俺のマクロが可笑しく書いてるだけかな
2017/08/27(日) 23:37:22.62ID:LjjEWylk0
>>14
ある
Excelは割りと最適化してくれるけど、最適化しないとこは猛烈に重い

あと、ヘタにvbaコード書くよりマクロの記録をまるまるコピペしたほうがいい場合も多い
2017/08/27(日) 23:57:27.56ID:jYGHj9310
たしかに枠線の色はパンチ効いてそうだな、メモリ的に
2017/08/28(月) 00:07:43.72ID:8e8g8cz+0
枠線じゃなくて罫線ね
色に関する機能はとにかく重い
2017/08/28(月) 00:21:31.22ID:uF0tQjXI0
どのくらいの大きさのものか、どのくらいの処理から重いと言うのかにもよるけど、
>>14と変わらない環境で5000行50列を縦横別々の判定で罫線引いてセルの背景色を行毎に変えて重要項目に個別に色付けてって処理でも五秒もあれば完了するし、
実務に影響が出るほど遅いって事なら、たぶんUnionでセルをまとめずに一つ一つに処理が発生するような事してるのでは?

処理の順番や組み合わせ次第で装飾的な処理はかなり軽く出来るはず。
GPU並の応答速度をセルに要求するなら知らんけど。
2017/08/28(月) 06:09:18.70ID:4ejthJEF0
銀行にはデータセンターがあって、機械で文字識別に失敗したものが、処理される

3人の職員が、画像を見ながら、金額を打ち込んで、3人とも同じなら合格

殴り書きの人がいるから。
これは、郵便局でも同じ

スレ違いだけど
2017/08/28(月) 17:53:40.80ID:pLim95Ou0
その銀行のシステムをExcelで作っているのでなければどうでもいいな
2017/09/01(金) 18:17:33.81ID:aTcGbRyI0
点数 人数 名前
10 0
9
8 3 foo bar moge
7 5 piyo poo


こういう感じのn行×3列の表があります。
人数は、その点数を取った人数です。
2017/09/01(金) 18:23:17.66ID:aTcGbRyI0
すみません、途中で投稿してしまいました。

点数 人数 名前
10 0
9 1 hoge
8 4 foo bar moge
7 5 piyo poo…
6 9 …


こういう感じのn行×3列の表があります。
人数は、1列目の点数を取った人の数です。

人数を上から足していって、初めて10を超えた行より上の行の背景色を変える、ということは、
「条件付き書式」で可能でしょうか?
2017/09/01(金) 18:36:17.67ID:phDteRqs0
>>22
ここVBAスレだからエクセルのスレで聞いた方がいいのでは。

VBAやってる人間って基本的にエクセルの機能知らなくて、
自分で実装した後にそういう機能がある事知って悶絶するのが普通だし。
2017/09/01(金) 18:46:07.83ID:A4rxsWGh0
>>22
人数の累積が10以上かどうかを示す列を追加したら
こんな感じで出来るんでない?

=OR(AND($D4=0, $D5=1), $D5=0)

D列が累積10以上かどうかの列
0なら10未満、1なら10以上
上の例は5行目に設定した条件付き書式
2017/09/02(土) 10:23:46.50ID:1XOwz87o0
>>22
俺ならD列には上からの合計人数を出す式を追加して
D列の値が10未満かどうかで条件付き式書式を設定する
26デフォルトの名無しさん (ワッチョイ 43aa-k/3h)
垢版 |
2017/09/02(土) 10:28:20.75ID:m6EVfTkB0
Sub SetGUID()
'On Error GoTo Err_Check:
Dim ref As Reference
End Sub

でコンパイルエラーが出ました。Referenceをで意義してなとのことです。
Referenceをインポートしなければいけないのでしょうか?
2017/09/02(土) 11:21:10.40ID:1XOwz87o0
reference型は存在しない
28デフォルトの名無しさん (ワッチョイ 43aa-k/3h)
垢版 |
2017/09/02(土) 11:56:02.84ID:m6EVfTkB0
ありがとうございます。
2017/09/02(土) 14:35:26.83ID:SpCYKXrKa
>>22
B列に条件付き書式で
=SUM($B$1:$B1)<10
いけるんじゃね。
2017/09/02(土) 18:32:32.23ID:JEC7rQdw0
皆様ありがとうございます。
累積人数の作業列を用意するやり方でできました。
2017/09/02(土) 21:49:19.26ID:BeXWDCQaa
>>29
何で列を追加する必要がある?
一番上のセルを絶対座標にして下のセルの行番号を相対にすれば各行迄の累積人数取れるじゃん。
2017/09/02(土) 22:25:34.44ID:9PaYDv7F0
>>31
それってスケールしなくない?
2017/09/02(土) 22:28:15.89ID:kdjl/egy0
苦いもんな
2017/09/03(日) 03:52:33.65ID:gP322rFm0
それはケール
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況