Excel VBA 質問スレ Part66at TECH
Excel VBA 質問スレ Part66 - 暇つぶし2ch932:デフォルトの名無しさん
20/06/20 12:24:38.59 CytyTodc.net
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

933:デフォルトの名無しさん
20/06/20 12:44:36 ygihVcRE.net
>>898
重複排除したきゃKey指定すればいいだけだろ
てか、そういう使い方しかしたことないわ

934:デフォルトの名無しさん
20/06/20 12:57:07 m9vPjHEn.net
keyの位置間違えててできなかったって話だろ…

935:デフォルトの名無しさん
20/06/20 15:27:33.55 ygihVcRE.net
ああすまん、よく読んだらそうだな

936:デフォルトの名無しさん
20/06/20 15:53:54.10 wuXUOHn9.net
PCに疎い人達の集まる職場
週に1回の頻度で1200個の数値を4時間かけて手打ちしてたのを3秒で終わらせるマクロ組んで改善提案→何かわからんけど組んだんだろ で300円
他のシートやブックに行き来しやすいように
図形に文字入れてハイパーリンクをセットしたのを2つ作った
→これはいいぞ 1000円
もう嫌だ

937:デフォルトの名無しさん
20/06/20 15:58:25.34 MH9+mSJC.net
300円とか1000円って何?

938:デフォルトの名無しさん
20/06/20 16:02:10 wuXUOHn9.net
>>907
改善提案出すとお金貰える仕組みの会社だから
トヨタグルーやトヨタ系とかは結構そうじゃないかな

939:デフォルトの名無しさん
20/06/20 16:08:51.15 MH9+mSJC.net
>>908
単にプレゼンというか説明下手なだけじゃないの?

940:デフォルトの名無しさん
20/06/20 16:23:05.64 wuXUOHn9.net
>>909
もうマクロに関してそこは諦めたわ
if関数使ったりそういう改善のが1000円や1500円で貰えるからそっちでいってる
同僚から組んで欲しいってのも全部断ってる
58歳のパソコンに疎すぎる人に説明する必要性もないかな

941:デフォルトの名無しさん
20/06/20 17:02:57.89 wVoXfuuE.net
まぁ、「実際の能率の向上」より「誰にでも分かりやすく使い易い」にウエイトが傾いてるってのはよくあることじゃね。
どんな評価方法か知らんけど。
・直接的に恩恵を受ける人の数
⇒あくまで例えばだが、>>906の「3秒マクロ」で仕事が楽になるのが数人しかいない、とか、
 「図形2つ」が割と広い範囲で使える上に、他の職場でも応用が利く、とか。
・柔軟性
⇒例えば3秒マクロに何かしら元となるデータがあると仮定して、
 そのデータを出力するシステムの仕様に変更があった場合対応できなくなる、とか。
 他方、図形2つの方は文字どおり図形2つ作って文字入れてハイパーリンクを加えただけなので、
 例えば参照先URLなりが変わったとしても、比較的対応が容易だし、
 よほどのことがなければ「使えなくなる」ということが考えられない、とか。
・上司のその時の気分、あるいは好かれ具合
⇒それな

942:デフォルトの名無しさん
20/06/20 17:21:32.15 qvmNBmpu.net
>>910
同じような所が10カ所(ファイル)あったら10000円~15000円もらえるのかな

943:デフォルトの名無しさん
20/06/20 17:21:48.48 XQZF02H8.net
相談もなしに勝手なマクロを組んだことで減点対象になったのだろう
もしかしたら、その作業は近々システムの変更でなくなる予定だったかもしれない
作業以外の目的があったのかもしれない
残業が多いなと思っていたら、
余計なものを作って遊んでいた、減給されないだけましだろう

944:デフォルトの名無しさん
20/06/20 17:41:36.37 qvmNBmpu.net
マクロの変更も有識者間でコードレビューして評価報告書提出して上司に確認のサインもらって
修正連絡票回覧するまでやらないとクレームはいったりするよね
知らない間に勝手にマクロが書き換えられていたとか言われたらやばいだろ

945:デフォルトの名無しさん
20/06/20 18:45:21.31 m9vPjHEn.net
>>906
わかりやすく説明するなり評価方法に基づいたアピールするなりすりゃいいじゃん

946:デフォルトの名無しさん
20/06/21 05:53:32.39 I80zoHyc.net
お前らの職場って大変そうだな
おれんところなんか俺しかVBA触れるやついないから好き放題やってるわ

947:デフォルトの名無しさん
20/06/21 09:05:05 zpzjHnJy.net
俺も俺も
初心者に毛が生えた程度の知識だけど周りはPC素人ばかりだからやりたい放題だ

948:デフォルトの名無しさん
20/06/21 10:08:30.56 7ZJTD4pQ.net
同じく
PCマイスターみたいに見られてるけど、薄々勘付かれているかもしれない

949:デフォルトの名無しさん
20/06/21 13:43:26.96 /utMrS/w.net
エクセルはそこそこ使いこなせるがマクロは全く知らないってな人に
簡易マクロ作っただけで「ハァ?お前天才かよ?」みたいな反応されるよな。
褒められる優越感と小学生でも書けるコードで褒められる自分へ嫌悪感で
葛藤しまくるよな

950:デフォルトの名無しさん
20/06/21 14:00:37.96 ANltB6r3.net
いや、別に。

951:デフォルトの名無しさん
20/06/21 15:15:50.34 0WnnnX3x.net
両方とも別に

952:デフォルトの名無しさん
20/06/21 17:39:52.32 1ON8fipo.net
>>919
他の奴らってそもそも業務が違うだろ

953:デフォルトの名無しさん
20/06/21 17:47:04.76 k1xdFuXh.net
>>922
出来ない正社員と出来るバイトの俺

954:デフォルトの名無しさん
20/06/21 17:50:26.78 HGSDkuyA.net
>>919
読んでるこっちが恥ずかしい

955:デフォルトの名無しさん
20/06/21 18:05:28.37 xIpMoW7x.net
スレチだけどPHPは
ハイパーテキスト・プリプロセッサだってのに
初歩でも神呼ばわりだぜ
【PHP】下らねぇ質問はここに書き込みやがれ 11
URLリンク(itest.5ch.net)
96
> hoge.com/****
>に指定した数字入れて、html出力ってできますか?
103 foreach(
107
>>103
神!おっぱ・(自粛)

956:デフォルトの名無しさん
20/06/21 19:11:40.34 f7O4FwhH.net
よくメニューに[+]があり、
これを押すと隠してあったメニューが表示されるといった仕組みがあるのですが、
これをエクセルで実現することはできるでしょうか。

957:デフォルトの名無しさん
20/06/21 19:46:46.68 HGSDkuyA.net
簡単なのはVisibleプロパティをFalseからTrueにする方法

958:デフォルトの名無しさん
20/06/21 19:54:02.33 apqHGiEy.net
>>926
ユーザーフォームの使用になる
URLリンク(e-tech.life.hyogo-u.ac.jp)
ユーザーフォームのイベントで条件を記述してやるのが良い

959:デフォルトの名無しさん
20/06/21 19:54:53.04 jOeQJVeR.net
>>926
グループ化使うとか

960:デフォルトの名無しさん
20/06/21 20:09:41.65 Ca9zW0qx.net
>>923
100人規模で周りの人達ができない正社員なわけない
バイト数人が使う程度のマクロだろ

961:デフォルトの名無しさん
20/06/21 20:17:13.26 dwey+O0N.net
俺も大したことできないけど零細で偉そうにしてるわ
人生なんて鶏口牛後で十分なんだよ

962:デフォルトの名無しさん
20/06/21 21:52:25.43 LN5eNKcO.net
>>930
100人前後の会社で
60人ほど派遣
20人くらいがバイト
10人くらいのパート
正社員は10人ほどのうち確実に7人はエクセルもまともに使えないレベルなのでWord使ってる
エクセルを使うのは正社員1人派遣1人バイトの俺
3ヶ月に一度現れる謎の5人組はよく分からない
そいつらの給料が月70~80万円って言ってた
俺のバイト代は月12万円くらいだった
この国はおかしいって狂ってるよ

963:デフォルトの名無しさん
20/06/21 22:06:48.15 jOeQJVeR.net
大して優秀なわけでもないやつがちょっと優位な部分があるだけで周りを見下すあるある

964:デフォルトの名無しさん
20/06/22 00:04:33.28 CPlWdThO.net
>>932
Excel vba ができる人が少ないのは会社の重要な業務ではないからだろ
エクセルはあくまで補助的な使い方しかしてないんじゃねーの

965:デフォルトの名無しさん
20/06/22 00:17:00.59 W8AXf1Mi.net
採用条件に入ってないし学校やパソコン教室でも普通は教えないからできないのが普通
そもそもプログラミングとは何か、どういう場面で使うと便利なのかもわかってない人が大半
うっかり省力化すると事務員の首が飛ぶから、人の心があれば黙ってるものだし

966:デフォルトの名無しさん
20/06/22 01:24:44 CPlWdThO.net
一般的なプログラミングの話をするならExcelは不向き
そもそも表計算ソフトの延長でしかない

967:デフォルトの名無しさん
20/06/22 02:04:25.88 6UseFZdn.net
>>934
はいその通りです。
【60代パート】リングファイルを棚にしまう
【社長】ハンコついてパートに渡す <


968:br> 【60代パート】Wordから印刷して社長の机に置く 【50代課長】エクセルからWordにコピペしたファイル名とフォルダをパートに指示 【20代大卒美人派遣】エクセルで原価計算して課長に渡す 【30代バイト】梱包出荷伝票をエクセルに打込み



969:デフォルトの名無しさん
20/06/22 02:11:43.53 NG7/h+3B.net
>>937
多分そういうこと言ってるわけじゃないと思うぞ

970:デフォルトの名無しさん
20/06/22 02:30:48 6UseFZdn.net
>>938
え?
Excel vba を仕事にするのが会社の重要な業務である業界ってどこですか?

971:デフォルトの名無しさん
20/06/22 03:23:12.33 CPlWdThO.net
>>939
お前の会社は何の業界の会社だよw
例えば30代のバイトが梱包している作業のほうが会社にとって利益をもたらすんじゃないのか

972:デフォルトの名無しさん
20/06/22 08:49:37 no76adsC.net
ヨコレスだけど30代に梱包やらせる会社とか潰れちまえ
頭も体も回る年代なんだから大いに無駄な事やらせた方がいいと思うね
年食って手数よりも口数のほうが多くなってきたら梱包に回せ

973:デフォルトの名無しさん
20/06/22 10:07:31.70 lKh0OPb2.net
では無能な30代には何をやらせれば良いのだ?

974:デフォルトの名無しさん
20/06/22 10:18:08.71 f1XJDlES.net
バイトに雑用させるのは普通だし年齢関係ないわ

975:デフォルトの名無しさん
20/06/22 10:44:00.06 i2ShoQV/.net
VBAスレなのにバイトの仕事がどうのって話になってて、さすがだなっておもいましたwww

976:デフォルトの名無しさん
20/06/22 10:45:26.13 DpiCYHaq.net
vbaってプログラミングなの?

977:デフォルトの名無しさん
20/06/22 11:16:34 DTKm8QVZ.net
プログラミングじゃなかったらなんなんだ
物書きか?

978:デフォルトの名無しさん
20/06/22 11:19:23 DpiCYHaq.net
Excel関数の延長?

979:デフォルトの名無しさん
20/06/22 12:06:22.79 f1XJDlES.net
正式な定義を知りたきゃMS公式でも見ればいいだろ…

980:デフォルトの名無しさん
20/06/22 12:10:34.37 DpiCYHaq.net
申し訳ありませんでした

981:デフォルトの名無しさん
20/06/22 12:26:25 qDFuj4q3.net
馬鹿ばっか

982:デフォルトの名無しさん
20/06/22 18:17:44 es1/qSoW.net
一年限定で異動してきた職場
噂に聞いてたけど想像を絶するところだった
エクセル使う業務がほとんどなのに
関数使える人が数人、まともな人は確かにいる

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

ふとおばちゃん達は
「ここ選択してイコールの後にアルファベットと数値と同じ数値が反映される」
「えー!そうなの?」
と会話してる
マクロ以前の問題だった

983:デフォルトの名無しさん
20/06/22 18:44:26 CPlWdThO.net
管理者が無能だと会社がなくなる
管理者が有能なら無能な人材に高い給料は出さない

984:デフォルトの名無しさん
20/06/22 19:03:11 f1XJDlES.net
周りは出来ない語りしてもお前が優秀になれるわけじゃないんだよなぁ

985:デフォルトの名無しさん
20/06/22 23:08:43.37 eYhHFxw6.net
VBAでイキるの面白すぎるからやめて

986:デフォルトの名無しさん
20/06/22 23:16:11.85 R2BScS4S.net
やめたら面白くないだろ

987:デフォルトの名無しさん
20/06/23 00:55:19 TulROOqi.net
30代の梱包バイトのおばちゃんがVBAできないとか比較する方がおかしい

988:デフォルトの名無しさん
20/06/23 01:00:04 bSgedWTD.net
VBA素人です
というか、ちょっとだけPHPを書いたことがある程度のプログラム初心者です

セルA1:A5のどこか一箇所に値を入力すれば全てのセルが埋まるようにしたいのです
全てのセルには入力された値に対して決まったパーセンテージをかける
たとえばA1に100と入力されたらA2~5にはそれぞれA1*○%(○はA2~5とも異なる)
A2に100と入力されたらA1及びA3~5にそれぞれA2*○%

多分条件分岐でいうと
if A1が空白でないならA1には入力した値、A2*○%、A3*○%・・・
elseif A2が空白でないなら・・・

みたいな


989:感じになるのかなと思うのですが冗長ですよね… do Whileで書けるのか、他にスマートな書き方があるのか見当がつきません フォームでどのセルに入力するか選んで値を入れてボタンを押すと 全てのセルが埋まる、というのが理想です アドバイスを頂けたらありがたいです よろしくおねがいします



990:デフォルトの名無しさん
20/06/23 01:09:31.87 kv8byCI9.net
for r=1 to 5
if 入力されたセルじゃない場合
cells = 入力された数値かける定数
end if
next
みたいな感じでは?

991:デフォルトの名無しさん
20/06/23 01:33:11.82 kv8byCI9.net
あー、これじゃダメみたい、すみません。

992:デフォルトの名無しさん
20/06/23 01:53:19.74 bE26MwSl.net
>>957
ちょっとだけとか書くなよ
全くわかっていない馬鹿だろうが

993:デフォルトの名無しさん
20/06/23 02:25:19.01 akfNW9d5.net
入力セルによらず割合が一定なら100%の値を出してからそれをループで入れろバカか

994:デフォルトの名無しさん
20/06/23 03:24:31 TulROOqi.net
>>957
俺なら入力は1か所(A1)だけにして A2~A5 は 入力させない or "=A1" にでもするかもな

995:デフォルトの名無しさん
20/06/23 05:39:38.41 BwhdgQkj.net
>>957ユーザーフォームにリストボックスとテキストボックスとコマンドボタンを作成し以下
Dim val As Double
Private Sub UserForm_Initialize()
  With ListBox1
   .AddItem "A1"
   .AddItem "A2"
   End With
End Sub
Private Sub CommandButton1_Click()
  If UserForm1.ListBox1.Value="A1" then
val = UserForm1.TextBox1.Value
 A1
Else If UserForm1.ListBox1.Value="A2" then
 val = UserForm1.TextBox1.Value
 A2
 End If
End Sub
Sub A1()
 Range("A1").value=val
 Range("A2").value=val*0.2
 Range("A3").value=val*0.3
 Range("A4").value=val*0.4
 Range("A5").value=val*0.5
End Sub
Sub A2()
 Range("A1").value=val*0.1
 Range("A2").value=val
 Range("A3").value=val*0.3
 Range("A4").value=val*0.4
 Range("A5").value=val*0.5
End Sub

996:デフォルトの名無しさん
20/06/23 07:50:59.28 xSXJEKQO.net
意図が伝わるようにユーザーフォームで入力させた方がいいように見えるな
visibleのtrue ,false切り替えでうまくやりたい

997:955
20/06/23 09:36:33.10 bSgedWTD.net
ご教示下さったみなさまありがとうございます
>>963
丁寧にありがとうございます
書いて頂いたのでなんとかなりそうです

998:デフォルトの名無しさん
20/06/23 10:14:19.39 eVy5K5L9.net
コピペ

999:961
20/06/23 12:34:05.64 5v5sJ6te.net
>>965
スマホで寝ながら打ったから
Win7のExcel2010にコピペして確認してみたらミスってた
訂正。大文字だったスマソ then>Then
URLリンク(i.imgur.com)

1000:デフォルトの名無しさん
20/06/23 13:08:23.25 AqGxlhQk.net
VBEが勝手に大文字に直してくれるから、ステートメントは全部小文字で入力してるわ

1001:デフォルトの名無しさん
20/06/23 16:26:51.99 lLVW3adv.net
UsedRangeの使えなさに絶望しました
あれってなに目的で使えんの?
>>968
おれもそれチェック代わりに使ってるんで
変数はほぼ全て大文字スタートだわ
他言語だとやらないけどVBAはエディタがあれなんで

1002:デフォルトの名無しさん
20/06/23 17:18:02.36 JWFUfSAs.net
>>969
間違った使い方してるだけじゃないのか

1003:デフォルトの名無しさん
20/06/23 18:21:08.83 coVE1fyX.net
>>969
グラフ自動生成するときとかに使ってる

1004:デフォルトの名無しさん
20/06/23 18:22:23.82 z7FZNG3t.net
usedrangeはファイルの中身を検査する時に使うな
個人情報が入ってないかとか

1005:デフォルトの名無しさん
20/06/23 18:28:15.83 X4/0OZ1g.net
UsedRangeは普通に使うぞ。
寧ろ、一番使うかも。
Excelの固定じゃない範囲を取得する場合、これでOKというようなものが無い。
都度考えることになる。

1006:デフォルトの名無しさん
20/06/23 21:35:23 LvHFRgi0.net
値化とか

1007:デフォルトの名無しさん
20/06/23 21:40:15 LvHFRgi0.net
2次元の動的配列にバックデータを突っ込むときに使う

1008:デフォルトの名無しさん
20/06/23 22:16:19.70 zDUcrbEK.net
やっと念願の夢かなって生産現場に異動できそう
PCをあまり使わなくなる職場にいけるから
マクロ組んだりもほとんどしなくて済むから嬉しすぎる
そしてここで教えてくれた人たちへの恩も忘れられんよ

1009:デフォルトの名無しさん
20/06/23 22:27:25.32 UicElvK7.net
ひでぇなぁ忘れられちゃうのかぁ残念
汗だくの梱包現場からエアコン効いた部屋に行きたいよ

1010:デフォルトの名無しさん
20/06/24 10:22:12 XfIA0IcT.net
Sub Sample1()
Dim Target As Range
Set Target = Range("P:P").FiVBA エラー 91
これで
オブジェクト変数または With ブロック変数が設定されていません。t.Offset(0, 1)
End Sub

何がだめ?

1011:デフォルトの名無しさん
20/06/24 10:26:15 7kmsZdqz.net
FiVBAって命令あるの?

1012:デフォルトの名無しさん
20/06/24 13:23:42.08 hNjrAS7L.net
tってなんだよ
宣言してないオブジェクト変数が動くわけないだろ

1013:デフォルトの名無しさん
20/06/24 13:58:43 LpqCs0qI.net
なにがだめって聞かれても全てがとしか

1014:デフォルトの名無しさん
20/06/24 14:29:06 jVCudKEf.net
ちゃんと内容を確認しないのが駄目

1015:デフォルトの名無しさん
20/06/24 14:58:07.29 ec8khzg7.net
ごめん間違えた
これです
Sub Sample1()
Dim Target As Range
Set Target = Range("P:P").Find(What:="田中")
MsgBox Target.Offset(0, 1)
End Sub

1016:デフォルトの名無しさん
20/06/24 15:31:45.69 7kmsZdqz.net
>>983
URLリンク(www.moug.net)
ここでも参考にしな
まず確実に言えるのは、Nothingのエラー対処ができてない

1017:デフォルトの名無しさん
20/06/24 16:03:07.42 A95Qwidx.net
>>983
田中がないんだろどうせ

1018:デフォルトの名無しさん
20/06/24 16:11:20.98 ec8khzg7.net
Set Target = Range("P:P").Find(What:="田中")
この田中を変数というか特定のセルの値にしたい場合どうしたらいい?
A1のセル内容を参照したいとする

1019:デフォルトの名無しさん
20/06/24 16:18:53 ec8khzg7.net
あ、できた
ごめん自分は京都大学霊長類研究所のジェームズという7歳のチンパンジーだからVBAよくわからないんだ
皆さんありがとございまうす

1020:デフォルトの名無しさん
20/06/24 16:21:57 4/s69xMY.net
>>987
解決内容を書けチンパンジー

1021:デフォルトの名無しさん
20/06/24 17:53:24 A95Qwidx.net
自己紹介や自分語りはいらん

1022:デフォルトの名無しさん
20/06/24 19:08:49.57 Ra7WLueW.net
>>986
Nothingのエラ―対処が出来て無いってのはみんなが通る道だ。

1023:デフォルトの名無しさん
20/06/24 19:26:45 aYj5R9EO.net
自分で使う分にはエラー終了でも正常終了でも変わらんし

1024:デフォルトの名無しさん
20/06/25 14:24:07.38 UL1INOQI.net
In Range("R:R")
というのがあるとして
R列全体を選択するのはマストなんだけど
ホントはR7からソレ以下全部にしたい
In Range("R7:R")ではうまく行かないみたいだしこういう場合ってどうしたらいいんだろう

1025:デフォルトの名無しさん
20/06/25 14:52:26.82 fOnLoXil.net
usedrangeじゃ駄目なんですか?

1026:デフォルトの名無しさん
20/06/25 15:35:07.92 eDJAI9Nl.net
テーブルにすれば?

1027:デフォルトの名無しさん
20/06/25 15:38:48.25 emOdy//g.net
cellsでそこから最終行まで指定すればいいじゃない

1028:デフォルトの名無しさん
20/06/25 16:00:07 eepaDL1r.net
colmns.countが最終桁番号だしApplication.Intersectで指定2範囲の重複部分だせるし

1029:デフォルトの名無しさん
20/06/25 16:24:03.44 oGWS7APt.net
直感的にやるならRange(Range("R7"),Range("R7").End(xlDown))でいいんじゃない

1030:デフォルトの名無しさん
20/06/25 17:54:02 xz2BRr


1031:37.net



1032:デフォルトの名無しさん
20/06/25 17:54:59 orhJfehX.net
きたこれ
VBA歴2ヶ月なのに俺は職場のPCの先生から神様扱い

1033:デフォルトの名無しさん
20/06/25 18:26:51 BKkovaqh.net
何そのダメ先生

1034:デフォルトの名無しさん
20/06/25 18:32:44 0L1EfJ/H.net
おだてられて浮かれてるだけだなw

1035:デフォルトの名無しさん
20/06/25 18:45:05 goJhPQKd.net
うー

1036:1001
Over 1000 Thread .net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 46日 5時間 1分 20秒

1037:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch