X



Excel VBA 質問スレ Part66
レス数が950を超えています。1000を超えると書き込みができなくなります。
0852デフォルトの名無しさん垢版2020/06/18(木) 15:10:31.12ID:JIQPCGLI
てか配列から直接セルに代入しないといけないってのは
データ数が多いとか速度重視したいとか?
そうでないなら基本通りにFor使って入れりゃいいだけなんだけど
0854デフォルトの名無しさん垢版2020/06/18(木) 16:29:20.31ID:DGNmlHkR
おまいら質問をちゃんと読んでるか?
「簡単な方法はありますか?」なんだから、Forで回すのは嫌ってことだろ
つまり回答は「そんな方法はない」
0855デフォルトの名無しさん垢版2020/06/18(木) 16:32:36.54ID:DGNmlHkR
ステップ数を減らしたいだけなら、一旦そのまま全部ワークシートに入れて2列目だけコピペか1行目を削除すれば数行で完結する
たぶんForより速い
0858デフォルトの名無しさん垢版2020/06/18(木) 17:38:49.86ID:Kimfxpnn
同じ社員同士なのにエクセルの便利機能とかを
情報共有しないのってなんなんだろう
0859デフォルトの名無しさん垢版2020/06/18(木) 17:57:51.44ID:1Z+MjfLn
ループからの抜け方、@とAどっちが推奨?

@
do while
 for
  if
   脱出フラグ = true
   exit for
  end if
 next
 if 脱出フラグ then exit do
loop

A
do while
 for
  if 脱出条件 then exit do
 next
loop
0862859垢版2020/06/18(木) 18:01:15.31ID:1Z+MjfLn
@の3行目のifは脱出条件な
0863デフォルトの名無しさん垢版2020/06/18(木) 18:12:03.89ID:AEhoYLDr
>>859
処理の抜けや他の処理に影響がないならという条件付きでA、
場合によっては exit sub 、exit function でも書く
0864デフォルトの名無しさん垢版2020/06/18(木) 19:24:08.22ID:LKxMxESP
do whileの条件とifの条件ををandで繋いでdo while
loop行の前でi=i+1(forのカウンタ代わり)
これでよいのでは
0867デフォルトの名無しさん垢版2020/06/18(木) 19:48:21.18ID:KBH9L3ob
do whileとforで2重ループするのが確定で、外側まで一気に抜けるのが確定なら2を選ばない理由がない
0868デフォルトの名無しさん垢版2020/06/18(木) 19:53:02.72ID:DGNmlHkR
>>866
二重ループの内側から一気に抜けたい時は、俺なら内側のループを別プロシージャにするか、Do Loopを二重にする
コード量によってはフラグ変数やExitは見通しが悪くなる、別の言い方をすれば終了条件がわかりづらくなるからあんまり使いたくない
0869デフォルトの名無しさん垢版2020/06/18(木) 20:17:54.42ID:1Z+MjfLn
>>864,867,868
とりあえず処理に問題なければ一気に外に抜けること自体は問題ないってことか
確かにDoに変えるのも手だな
適当に使い分けることにするわサンキュー
0876デフォルトの名無しさん垢版2020/06/18(木) 20:34:24.21ID:vZk8Xm54
Gotoはもちろんのこと、余程のことがない限りはExit For(Do)使うよりはExit Function使った方がいい
0881デフォルトの名無しさん垢版2020/06/18(木) 23:40:35.48ID:Cax/ofky
一応、while wendは最後までループ抜けさせないぞって読ませ方ができる
知ってる人が少なくなってるからむしろ逆効果のお節介となってきているが
0882デフォルトの名無しさん垢版2020/06/19(金) 00:17:23.49ID:NwluTwH5
行番号とか代入のLetとかも使ってるやつはいない
過去の名残があちこちにあるのがVBA
0883デフォルトの名無しさん垢版2020/06/19(金) 08:29:01.10ID:VZXzW3Q1
do while〜loopって構文が気に食わんわ

do [処理] while [脱出判定] loop
もしくは
while [脱出判定] do [処理] loop
のほうが思考に沿う
ってかdo必要?
0888デフォルトの名無しさん垢版2020/06/19(金) 21:17:20.11ID:RlTsj/W2
職場の人が書くマクロ、わかりやすいんだけど無駄改行多くてスクロールしないと全体像掴めないでつらい
0892デフォルトの名無しさん垢版2020/06/20(土) 00:41:32.09ID:YZMPfrl8
>>883
英語として

Do while a is b. If a is bigger than b, then break..

というのと

While if a is bigger than a, do something.

どちらが自然かという問題だったようだ。どっちも変だけど
0894デフォルトの名無しさん垢版2020/06/20(土) 04:41:54.35ID:heakYJWv
ちょ、VBAのCollectionのAddメソッドってvalue/keyの順番だったのかよぉ
C#もJavaもPythonもkey/valueの順だから勘違いしてたわ!
なんかおかしいとおもった
0898デフォルトの名無しさん垢版2020/06/20(土) 12:12:13.86ID:RmKRgXjX
>>888
それは1プロシージャの行数が多いということかな?
それはダメダメだ。

そういうことになることはあるけど、本人が書ける奴なら自分でも分かってるかもね。
時間があれば直すんだけどってのは時々ある。
0900デフォルトの名無しさん垢版2020/06/20(土) 12:24:38.59ID:CytyTodc
excelからwordのoleなのですが、印刷プレビュー画面が表示されている
あいだは処理を停止させておきたのですが、どうすればできますか?
また、excelのほうのPrintPreviewメソッドではそれが実現できるのですが、
その違いはなんなのでしょうか。

Dim WORD As Object
Set WORD = CreateObject("Word.application")
WORD.Documents.Open(filePath)
WORD.PrintPreview = True
Do Until WORD.PrintPreview = False
Loop
0904デフォルトの名無しさん垢版2020/06/20(土) 15:53:54.10ID:wuXUOHn9
PCに疎い人達の集まる職場

週に1回の頻度で1200個の数値を4時間かけて手打ちしてたのを3秒で終わらせるマクロ組んで改善提案→何かわからんけど組んだんだろ で300円

他のシートやブックに行き来しやすいように
図形に文字入れてハイパーリンクをセットしたのを2つ作った
→これはいいぞ 1000円

もう嫌だ
0906デフォルトの名無しさん垢版2020/06/20(土) 16:02:10.10ID:wuXUOHn9
>>905
改善提案出すとお金貰える仕組みの会社だから
トヨタグルーやトヨタ系とかは結構そうじゃないかな
0908デフォルトの名無しさん垢版2020/06/20(土) 16:23:05.64ID:wuXUOHn9
>>907
もうマクロに関してそこは諦めたわ
if関数使ったりそういう改善のが1000円や1500円で貰えるからそっちでいってる
同僚から組んで欲しいってのも全部断ってる
58歳のパソコンに疎すぎる人に説明する必要性もないかな
0909デフォルトの名無しさん垢版2020/06/20(土) 17:02:57.89ID:wVoXfuuE
まぁ、「実際の能率の向上」より「誰にでも分かりやすく使い易い」にウエイトが傾いてるってのはよくあることじゃね。
どんな評価方法か知らんけど。

・直接的に恩恵を受ける人の数
⇒あくまで例えばだが、>>904の「3秒マクロ」で仕事が楽になるのが数人しかいない、とか、
 「図形2つ」が割と広い範囲で使える上に、他の職場でも応用が利く、とか。

・柔軟性
⇒例えば3秒マクロに何かしら元となるデータがあると仮定して、
 そのデータを出力するシステムの仕様に変更があった場合対応できなくなる、とか。
 他方、図形2つの方は文字どおり図形2つ作って文字入れてハイパーリンクを加えただけなので、
 例えば参照先URLなりが変わったとしても、比較的対応が容易だし、
 よほどのことがなければ「使えなくなる」ということが考えられない、とか。

・上司のその時の気分、あるいは好かれ具合
⇒それな
0911デフォルトの名無しさん垢版2020/06/20(土) 17:21:48.48ID:XQZF02H8
相談もなしに勝手なマクロを組んだことで減点対象になったのだろう
もしかしたら、その作業は近々システムの変更でなくなる予定だったかもしれない
作業以外の目的があったのかもしれない

残業が多いなと思っていたら、
余計なものを作って遊んでいた、減給されないだけましだろう
0912デフォルトの名無しさん垢版2020/06/20(土) 17:41:36.37ID:qvmNBmpu
マクロの変更も有識者間でコードレビューして評価報告書提出して上司に確認のサインもらって
修正連絡票回覧するまでやらないとクレームはいったりするよね
知らない間に勝手にマクロが書き換えられていたとか言われたらやばいだろ
0914デフォルトの名無しさん垢版2020/06/21(日) 05:53:32.39ID:I80zoHyc
お前らの職場って大変そうだな
おれんところなんか俺しかVBA触れるやついないから好き放題やってるわ
0915デフォルトの名無しさん垢版2020/06/21(日) 09:05:05.14ID:zpzjHnJy
俺も俺も
初心者に毛が生えた程度の知識だけど周りはPC素人ばかりだからやりたい放題だ
0917デフォルトの名無しさん垢版2020/06/21(日) 13:43:26.96ID:/utMrS/w
エクセルはそこそこ使いこなせるがマクロは全く知らないってな人に
簡易マクロ作っただけで「ハァ?お前天才かよ?」みたいな反応されるよな。
褒められる優越感と小学生でも書けるコードで褒められる自分へ嫌悪感で
葛藤しまくるよな
0921デフォルトの名無しさん垢版2020/06/21(日) 17:47:04.76ID:k1xdFuXh
>>920
出来ない正社員と出来るバイトの俺
0924デフォルトの名無しさん垢版2020/06/21(日) 19:11:40.34ID:f7O4FwhH
よくメニューに[+]があり、
これを押すと隠してあったメニューが表示されるといった仕組みがあるのですが、
これをエクセルで実現することはできるでしょうか。
0929デフォルトの名無しさん垢版2020/06/21(日) 20:17:13.26ID:dwey+O0N
俺も大したことできないけど零細で偉そうにしてるわ
人生なんて鶏口牛後で十分なんだよ
0930デフォルトの名無しさん垢版2020/06/21(日) 21:52:25.43ID:LN5eNKcO
>>928
100人前後の会社で
60人ほど派遣
20人くらいがバイト
10人くらいのパート
正社員は10人ほどのうち確実に7人はエクセルもまともに使えないレベルなのでWord使ってる
エクセルを使うのは正社員1人派遣1人バイトの俺
3ヶ月に一度現れる謎の5人組はよく分からない
そいつらの給料が月70〜80万円って言ってた
俺のバイト代は月12万円くらいだった
この国はおかしいって狂ってるよ
0931デフォルトの名無しさん垢版2020/06/21(日) 22:06:48.15ID:jOeQJVeR
大して優秀なわけでもないやつがちょっと優位な部分があるだけで周りを見下すあるある
0932デフォルトの名無しさん垢版2020/06/22(月) 00:04:33.28ID:CPlWdThO
>>930
Excel vba ができる人が少ないのは会社の重要な業務ではないからだろ
エクセルはあくまで補助的な使い方しかしてないんじゃねーの
0933デフォルトの名無しさん垢版2020/06/22(月) 00:17:00.59ID:W8AXf1Mi
採用条件に入ってないし学校やパソコン教室でも普通は教えないからできないのが普通
そもそもプログラミングとは何か、どういう場面で使うと便利なのかもわかってない人が大半
うっかり省力化すると事務員の首が飛ぶから、人の心があれば黙ってるものだし
0934デフォルトの名無しさん垢版2020/06/22(月) 01:24:44.89ID:CPlWdThO
一般的なプログラミングの話をするならExcelは不向き
そもそも表計算ソフトの延長でしかない
0935デフォルトの名無しさん垢版2020/06/22(月) 02:04:25.88ID:6UseFZdn
>>932
はいその通りです。
【60代パート】リングファイルを棚にしまう
【社長】ハンコついてパートに渡す
【60代パート】Wordから印刷して社長の机に置く
【50代課長】エクセルからWordにコピペしたファイル名とフォルダをパートに指示
【20代大卒美人派遣】エクセルで原価計算して課長に渡す
【30代バイト】梱包出荷伝票をエクセルに打込み
0937デフォルトの名無しさん垢版2020/06/22(月) 02:30:48.70ID:6UseFZdn
>>936
え?
Excel vba を仕事にするのが会社の重要な業務である業界ってどこですか?
0938デフォルトの名無しさん垢版2020/06/22(月) 03:23:12.33ID:CPlWdThO
>>937
お前の会社は何の業界の会社だよw
例えば30代のバイトが梱包している作業のほうが会社にとって利益をもたらすんじゃないのか
0939デフォルトの名無しさん垢版2020/06/22(月) 08:49:37.60ID:no76adsC
ヨコレスだけど30代に梱包やらせる会社とか潰れちまえ
頭も体も回る年代なんだから大いに無駄な事やらせた方がいいと思うね
年食って手数よりも口数のほうが多くなってきたら梱包に回せ
0940デフォルトの名無しさん垢版2020/06/22(月) 10:07:31.70ID:lKh0OPb2
では無能な30代には何をやらせれば良いのだ?
0942デフォルトの名無しさん垢版2020/06/22(月) 10:44:00.06ID:i2ShoQV/
VBAスレなのにバイトの仕事がどうのって話になってて、さすがだなっておもいましたwww
0948デフォルトの名無しさん垢版2020/06/22(月) 12:26:25.71ID:qDFuj4q3
馬鹿ばっか
0949デフォルトの名無しさん垢版2020/06/22(月) 18:17:44.27ID:es1/qSoW
一年限定で異動してきた職場
噂に聞いてたけど想像を絶するところだった
エクセル使う業務がほとんどなのに
関数使える人が数人、まともな人は確かにいる

ふとみたおっさんはエクセルの表の合計を電卓で足してキーボードでそれを打ち込

ふとおばちゃん達は
「ここ選択してイコールの後にアルファベットと数値と同じ数値が反映される」
「えー!そうなの?」
と会話してる
マクロ以前の問題だった
0950デフォルトの名無しさん垢版2020/06/22(月) 18:44:26.90ID:CPlWdThO
管理者が無能だと会社がなくなる
管理者が有能なら無能な人材に高い給料は出さない
レス数が950を超えています。1000を超えると書き込みができなくなります。

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