■ このスレッドは過去ログ倉庫に格納されています
Excel VBA 質問スレ Part52
- 1 :デフォルトの名無しさん:2018/01/27(土) 20:25:05.67 ID:Xe+uGT7T.net
- スレ立ての際は一行目に
!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 VBA 質問スレ Part51
http://mevius.2ch.net/test/read.cgi/tech/1510107990/
- 954 :デフォルトの名無しさん:2018/04/26(木) 06:24:38.62 ID:5wkI5WBA.net
- >>929
VBAが普及しているの(か?)なら、その理由は単にExcel付属だから。
VBAが使える言語であるという証左にはならない。
VBS見りゃ分かることだと思うが、そこまで頭回らない辺りが不憫。
- 955 :デフォルトの名無しさん:2018/04/26(木) 06:34:18.55 ID:6UTEs8Zh.net
- >>949
逆だろう
このスレにはVBAの用途がわかってない奴ばっかり
文字コード変換とかバカなことを言い出す
- 956 :デフォルトの名無しさん:2018/04/26(木) 07:58:00.08 ID:vXKBXetI.net
- >>954
だから全言語を比較検討した結果の使える使えないが普及に直結してるなんて話じゃないし
どんなに否定しようが実務において使えるから普及してんだよ
むしろ碌な知識の無い事務員ですら使える言語が使えないお前の脳みそを嘆け
- 957 :デフォルトの名無しさん:2018/04/26(木) 08:40:15.59 ID:YJ/3jqXK.net
- ここに居る奴は賢いのかもしれないが、スレチな役立たずの無能なレスする対人関係拗らせてる奴しか居ないのか…
- 958 :デフォルトの名無しさん:2018/04/26(木) 09:15:54.51 ID:7RW+qgkz.net
- ブックの中に「名簿」と「納付書」というシートがあります。
そして「名簿」シートのF1に数字の1が入っており、A8以降に行番号が入っています。
納付書には名簿F1の値にあわせてVLOOKUP関数で返される値が入るようになっています。
そこで、F1の番号が2ずつ繰り上がるごとにシート「納付書」を印刷し、それをシート名簿のA列の最終行の数字まで繰り返す
(A列の最終行が奇数の場合にはその番号の次の偶数で終わるようにしたい)
というコードを教えてください。
↓のコードだと一つのシート内でしか機能しないです
Sheets("名簿").Select
For i = Range("F1") To Range("F2") - 1 Step 2
Range("F1") = i
ActiveSheet.PrintOut
Next
End Sub
- 959 :デフォルトの名無しさん:2018/04/26(木) 10:17:51.67 ID:1F0vpiyn.net
- >>952
たまにマジで海渡りたいレベルの質問あるやん
仕方ないからフェリーに載せろって言ってもチャリじゃないとか言い出す奴いるし
- 960 :デフォルトの名無しさん:2018/04/26(木) 12:12:58.85 .net
- >>958
何ができないって言ってるの?
「納品書」を印刷したいんならActiveSheet.PrintOutの前の行に
Sheets("納品書").Selectとか入れればいいだけに見えるが
- 961 :デフォルトの名無しさん:2018/04/26(木) 12:14:27.31 .net
- あとは印刷の次の行にまたSheets("名簿").Selectか
- 962 :デフォルトの名無しさん:2018/04/26(木) 12:25:48.74 ID:qzHLyUF8.net
- >>956
VBAに取り憑かれるとこうなるのかな
どうしてもVBAをイケてるから普及してる言語に認定したいらしい
現実には他の選択肢を調べる発想すらない素人がなんとなくMicrosoftのブランドと簡単って宣伝文句につられて使ってるだけ
そりゃユーザー数だけなら多くなるわな
- 963 :デフォルトの名無しさん:2018/04/26(木) 12:36:33.48 ID:pitnEJRh.net
- ループ処理で以下のクリップボードに変数を格納する関数を通すと2回目でエラーになってしまいます
原因がわかれば教えてください
関数
Sub clip(strwork As String)
With New MSForms.DataObject
.SetText strwork '変数の値をDataObjectに格納する
.PutInClipboard 'DataObjectのデータをクリップボードに格納する
End With
Exit Sub
End Sub
エラー内容
実行時エラー'-2147221040(800401d0)'
DataObject:PutClipboardOpenClipboardに失敗しました
このあとSetCursorPosとSendKeys "^v"を使ってブラウザ上のテキストに貼り付けしてます
1回目の貼り付け時にブラウザが固まっているのでそれも影響しているかも知れません
よろしくお願いします
- 964 :デフォルトの名無しさん:2018/04/26(木) 15:09:38.89 ID:ifqqE2DW.net
- >>929
あってしかるべき機能がもし無ければ使えない
という文意じゃないか
暴れる前にまず正しい読解から始めよう
- 965 :デフォルトの名無しさん:2018/04/26(木) 15:14:40.98 ID:vXKBXetI.net
- バカが何をどう言おうが現実にVBAは使えてるし使われてるんだよ
顔真っ赤にしてバカなこと言う前に正しく現実を見るところから始めよう
- 966 :956:2018/04/26(木) 15:18:00.48 ID:7RW+qgkz.net
- >>960
>>960
ありがとうございます
それと今はF2で最終行を取得していますが、F2をやめて
「A列の最終行まで」処理をする方法もお願いします。
- 967 :デフォルトの名無しさん:2018/04/26(木) 17:16:40.00 ID:CPNcKS6O.net
- Sheet選択についてSheetが7つあります。
Sheet1/Sheet2/Sheet3/1/2/3/4
Sheet名「1」を選択するためにはこの方法しかないでしょうか?
------------------------
Dim cnt As long
cnt = 1
sheets(”” & cnt & "").select
------------------------
↓これだとSheet1選択
-------------------------
Dim cnt As long
cnt = 1
sheets(cnt).select
-------------------------
- 968 :デフォルトの名無しさん:2018/04/26(木) 17:56:34.08 ID:6+UF6pSh.net
- >>965
お前がな
まあVBAerは一生VBAで無駄な工数払ってればいいよ
まともな人は他の選択肢を見つけるから
- 969 :デフォルトの名無しさん:2018/04/26(木) 18:44:21.68 ID:vXKBXetI.net
- >>968
まともな人は「VBAで作って」と言われたらVBAで作るんだぜ
しかもPowerShellやらC#やらRubyやらで工数かけた分は依頼者が受け取らないから全部無駄になるんだぜ
今まで知らなかったんだろうけどこれで一つ勉強になったな
- 970 :デフォルトの名無しさん:2018/04/26(木) 18:47:45.62 ID:1F0vpiyn.net
- まともな業界はVBAで作ってなんて言わない
- 971 :デフォルトの名無しさん:2018/04/26(木) 18:48:34.66 ID:6+UF6pSh.net
- まともな人はまずVBAでやるべき仕事か判断して別の選択肢も提案するんだよ
言われたことしかできない底辺には難しいかもしれないがビジネスってそういうことなの
- 972 :デフォルトの名無しさん:2018/04/26(木) 18:51:16.28 ID:ftOVszhQ.net
- 近頃やたらとパワー系バカが暴れとるなw
一体どうしたんやコイツw
- 973 :デフォルトの名無しさん:2018/04/26(木) 19:18:37.14 ID:vXKBXetI.net
- >>970-971
VBAスレでこの意見が通ると思ってるんだからマジ信じられねぇよな
まともじゃないヤツの言う「まとも」を誰が信じるんだよっていう
- 974 :デフォルトの名無しさん:2018/04/26(木) 19:55:00.04 ID:PM4/5yqo.net
- >>967
シートを特定する方法は3つあって
1.オブジェクト名
2.シート名
3.インデックス番号
で、あなたのやり方はシート名
オブジェクト名はVBEで確認できて初期値は追加した順にSheet1〜なので
その場合、 Sheet4.Select でも選択できると思う
オブジェクト名は好きに変えられるので
わかりやすい名前にしとおくと、誰かが勝手にシート名を変えようが
そのオブジェクト名でシートを指定できるのでオススメ
インデックスで指定するなら Sheets(4).select
インデックスは単純に左から数えた順番ね
- 975 :デフォルトの名無しさん:2018/04/26(木) 20:04:54.98 ID:PM4/5yqo.net
- >>967
あと
Dim cnt As String
にして文字列で代入すれば()の中にダブルクォートがいらないから見やすくなるよ
cnt = "1"
Sheets(cnt).Select
- 976 :デフォルトの名無しさん:2018/04/26(木) 20:53:29.98 ID:azksLNTx.net
- 吹いた
- 977 :デフォルトの名無しさん:2018/04/26(木) 21:05:15.36 ID:lkizjysQ.net
- メゾット君大量発生してて草
- 978 :デフォルトの名無しさん:2018/04/26(木) 21:23:42.24 ID:r/OY0BCQ.net
- 別にプロの仕事として使われてる訳ではないと思うけどね、VBA。
Excelの使用頻度が高い事務職とかの人が使うイメージ。
何でもかんでも金払ってシステム化してくれる会社なんて無いし、例え使えたとしても簡単に他の言語の開発環境を手配できる訳でもないし。
powershell推しの人はメモ帳で書いてるの?
- 979 :デフォルトの名無しさん:2018/04/26(木) 22:06:42.62 .net
- サクラエディタだろ🙄
- 980 :デフォルトの名無しさん:2018/04/26(木) 22:53:45.01 ID:6/yp9D/N.net
- PowerShell ISE
- 981 :デフォルトの名無しさん:2018/04/26(木) 23:05:32.69 ID:4xU9Va0k.net
- >>967
要するに数値の 1 から文字列の "1" を作ればいいので >>975 以外にも
sheets(CStr(cnt)).select
とかでもいい
シート名が 0001 0002 ... となってたら
sheets(Format(cnt, "0000")).select
なんてこともできる
- 982 :デフォルトの名無しさん:2018/04/26(木) 23:08:02.27 ID:PM4/5yqo.net
- >>963
Excelからブラウザに値を送りたいだけなら
クリップボードを経由しないでDOMでやるのがいいよ
VBA DOMでググるとたくさん解説があるよ
IE限定なので宗教上の理由がなければだけど
- 983 :デフォルトの名無しさん:2018/04/27(金) 01:20:38.90 ID:XIoO9rX1.net
- >>978
Excelと関係ないことをExcel VBAでやりたいという質問者がいる。
文字コード変換をExcel VBAで自作するので教えてくれという人間に対して、VBAを勧めるのはいくらなんでもおかしいだろ。
- 984 :デフォルトの名無しさん:2018/04/27(金) 01:22:57.14 ID:HF+12vcg.net
- 実際VBAでもADODB使って数行でできることなのに何をそんな発狂してるんだよ
- 985 :デフォルトの名無しさん:2018/04/27(金) 07:29:42.30 ID:x5ddf63d.net
- 処理の進捗をテキストボックスに表示する方法なの
ですが何かサンプルはありませんか?
出来れば自動的にスクロールしてくれるといいのですが
- 986 :デフォルトの名無しさん:2018/04/27(金) 08:35:57.38 ID:OIkEEKud.net
- >>974
>>975
>>981
アドバイス頂き有難う御座います。
他の方法があるのは知らなかった、、、。
勉強不足でした。
m(_ _)m
- 987 :デフォルトの名無しさん:2018/04/27(金) 09:53:41.83 ID:ssDw3ggw.net
- >>982
chomeなんですが別の貼り付け処理にしたらさくさく動きました
ありがとうございます
- 988 :デフォルトの名無しさん:2018/04/27(金) 10:24:15.83 ID:VVRpgY9f.net
- >>985
普通にプログレスバーを使えば良いと思うが
https://e-vba.com/progressbarlabel/
プログレスバーをLabelで作成する方法
とかは?
- 989 :デフォルトの名無しさん:2018/04/27(金) 10:53:19.60 ID:24cBGVvy.net
- Excel エンジニアは、プログラマーじゃない。
企業内のExcel マクロエンジニア
Excel は、表示とデータが合体しているから、プログラミングが難しい。
Rails などの、MVC みたいに分かれていない
Excel は、データをexport して、Ruby で処理して、import するのが、最も簡単。
これで表示関係なく、ビジネスロジックだけに集中できる
>>978-980
VSCode
- 990 :デフォルトの名無しさん:2018/04/27(金) 11:01:30.91 ID:5M69ecQt.net
- >>988
もしかしたら
自分の作った処理の進捗をどうやって算出すれば良いですか
という意味の「勝手に計算しろ」的質問かも知らん
- 991 :デフォルトの名無しさん:2018/04/27(金) 11:06:36.26 ID:1E0b+/ui.net
- 進捗の表示で自動スクロールって、処理ログを表示したいって事じゃないのかな
全体像が分からないから提案すら出来ない状況だけど
- 992 :デフォルトの名無しさん:2018/04/27(金) 11:15:47.31 ID:zdd5R6zJ.net
- Debug.Printでイミディエイトウィンドウに出力するみたいなことをフォームでやりたいってことじゃろ
このスレ住民の読解力低すぎない?実務でクライアントの意向理解できてるの?
- 993 :デフォルトの名無しさん:2018/04/27(金) 11:57:22.87 .net
- >>989
Ruby(笑)
- 994 :デフォルトの名無しさん:2018/04/27(金) 12:23:59.13 ID:aFuuJPZg.net
- >>992
まさにそれです
Debug.print で表示された内容を
テキストボックスに表示させたいです
- 995 :デフォルトの名無しさん:2018/04/27(金) 12:42:48.64 ID:Z6S9Pog7.net
- >>989
お前EXCELに何やらせようとしてんの?w
MVCモデルなんてシステム作成するときに使うもんだろ
EXCEL上でデカいシステムでも作るつもりなのかよw
RubyやC#が悪いとは思わんがお前の頭は相当に悪そうだなw
- 996 :デフォルトの名無しさん:2018/04/27(金) 13:24:19.95 ID:zdd5R6zJ.net
- >>994
自動的にスクロールは難しそうなので最新の進捗を1行目に追記するようにした方が楽
- 997 :デフォルトの名無しさん:2018/04/27(金) 16:16:03.70 ID:j5wh8y7F.net
- >>989
プログラマでもなく、マクロエンジニアでもない。
ただの事務職。
関数では面倒な処理をVBAで書くだけだ。
- 998 :デフォルトの名無しさん:2018/04/27(金) 16:42:05.34 ID:UmeTlh/w.net
- 社内業務効率化のために使われるのが常だわな
- 999 :デフォルトの名無しさん:2018/04/27(金) 17:38:05.91 ID:3dQ/JE4S.net
- >>995
こういうバカがクソ使いにくいbookを作るんだよなぁ
- 1000 :デフォルトの名無しさん:2018/04/27(金) 17:50:21.87 ID:thq99FCt.net
- MVCでもMVVMでもなんでもいいけど入出力とデータを分けてくれ
そしてデータを正規化してくれ
VBAerさんはその程度の基本すら出来てない人ばっかりだ
そんなんじゃブック渡された方も迷惑だよ
- 1001 :デフォルトの名無しさん:2018/04/27(金) 17:56:59.29 ID:1E0b+/ui.net
- 自分の頭の中にしかいないVBAerとやらの話をここでされてもなぁ
- 1002 :デフォルトの名無しさん:2018/04/27(金) 18:22:55.95 ID:bvIKSWev.net
- おっと
- 1003 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1003
278 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★