[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/02 04:32 / Filesize : 267 KB / Number-of Response : 1038
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part66



1 名前:1000 [2020/05/10(日) 13:43:45 ID:Nkoph0aj.net]
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part65
https://mevius.5ch.net/test/read.cgi/tech/1584430040/

※デフォルト設定

766 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 03:29:37 ID:IFmaagGk.net]
>>738
選択した範囲は選択されているのか?

767 名前:デフォルトの名無しさん mailto:s []
[ここ壊れてます]

768 名前:age mailto:2020/06/12(金) 06:26:26.47 ID:u23pgbjD.net [ >>738
intersectした結果とTargetを比較したらいけないかな ]
[ここ壊れてます]

769 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 07:59:23 ID:d1Ad7gfn.net]
>>722
シートに配置したボタンでよく遭遇するよ。そんなもんだと思ってるから、ボタン押下時のコードに自分自身の位置とサイズを初期化するコードを書くようにしてる。

770 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 08:22:21 ID:F5wzc1/2.net]
>>739
分からないからそれしか言えないのか?

771 名前:582 mailto:sage [2020/06/12(金) 08:32:29.25 ID:KgwnUKnv.net]
>>736
俺が知ってる方法で4〜5種類の方法がある。
MSXMLとかWinHttpとかhtmlfileとか。

772 名前:582 mailto:sage [2020/06/12(金) 08:34:43 ID:KgwnUKnv.net]
>>722
どっかのリボンにオブジェクトのリスト出せるボタンが有ったと思うが、表示されなかったっけ?

773 名前:582 mailto:sage [2020/06/12(金) 08:36:08 ID:KgwnUKnv.net]
>>742
サイズ変わって見えなくなってるだけだよなあ。

774 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 12:46:47.02 ID:HqN3pHW3.net]
>>722
セルにあわせて移動やサイズ変更するかどうかの設定があったはずだが



775 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 13:13:42.59 ID:1+2Rgw6z.net]
>>747
バージョン2010以降「セルに合わせてサイズ変更や移動しない」の設定になっていても
サイズが変わってしまう事例を多数経験しています。(2007は経験なし)
ボタンだけでなく、コメントの位置も極端に移動すること多数。

776 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 13:14:30.95 ID:hxFv/xna.net]
>>744
ヘェ〜そんな関数あるんだ、IEオブジェクトだけかと思ってた、ありがとう

777 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 17:49:02 ID:aQA9YYrW.net]
>>742
エクセルに任せるんじゃなくてコード上で配置の指示だしておくってのは解決策になるのかもしれんね。ちっこくして非表示切り替えと関係ない安全な場所に退避させておくみたいな
>>745
それが「オブジェクトの選択と表示」
リストには出てるんだわ
>>747
まぁその辺もやってるんだけどね
むしろその辺でバグってるんだと思う
>>746
おれの書いた内容読んでないのかもしれんけど
VBAからサイズを再指定して表示させようとしてもバグってて指定を受け付けてくれないってことな
そもそもサイズの問題だけならシートコピーで他の正常なボタンと一緒にコピーされるはずじゃん

778 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 23:01:56.39 ID:FlbnSBZd.net]
Windows10に変えたら、クロマキー合成みたいなのが出来なくなっちゃったんだけど、
何か方法ない?

779 名前:デフォルトの名無しさん [2020/06/12(金) 23:29:11.20 ID:KALz8/u9.net]
また馬鹿が来た

780 名前:デフォルトの名無しさん mailto:sage [2020/06/12(金) 23:57:17 ID:FlbnSBZd.net]
>>739
>>752
一体どんな無様な人生を送ったら、そんなコメントが出来るようになるのかな?
生きててつまんないだろう?
ここの住人にかまってもらえるのが唯一の楽しみかい?

781 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 00:29:59.36 ID:0QXppYe5.net]
クロマキーはWin7まで。
ていうかクロマキーて・・。
確かにクロマキーだが。

782 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 01:18:01.22 ID:l5EmusQW.net]
一旦あきらめて、真の目的を違う方法で達成することを考えましょう

783 名前:デフォルトの名無しさん [2020/06/13(土) 03:31:14.05 ID:d/IEOBZf.net]
>>753
自分が言われたという自覚があるんだ?

784 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 06:33:26.28 ID:iOfV/qX/.net]
>>752
実は自分もわかってないからここで勉強してるんだろ
でマウント取りたいからそのコメント



785 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 07:35:38 ID:gm1IvgiV.net]
質問スレなんてどこでも、マウントとって承認欲求を満たそうとする奴らばかりだよ。
特にVBAスレは、プログラミング板の他のスレでは相手にされないレベルの奴がここなら俺でもマウントとれるだろと集まってくる。

786 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 10:49:08.95 ID:hwBvm+CU.net]
VBA始めて1週間
結構できるようになったけど、俺ってすごい!?

787 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 11:02:28 ID:iOfV/qX/.net]
>>759
どうやって勉強した?どこまでできるようなった?

788 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 12:54:09.65 ID:l5EmusQW.net]
VBA完全に理解した

VBAなにもわからない

VBAチョットデキル

789 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 13:53:12.35 ID:sXc2xmOg.net]
何を以て「できる」と判断したのか?

790 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 13:57:01.18 ID:k9PzEFx9.net]
初心者の頃に書いたコードみるとマジナンだらけでチョベリバだわ

791 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 14:05:41.14 ID:GFk/ON+H.net]
編集ができるってことじゃね

792 名前:デフォルトの名無しさん [2020/06/13(土) 14:17:20 ID:Ft3NByW3.net]
 ダニングクルーガー効果とかいうやつじゃね

793 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 15:41:58.59 ID:9rN9x/HV.net]
VBAに限らないコーディング全般の話になるかと思うんですが、
For文のカウンタ変数に対してそのブロック内で加減算するのはいわゆる「お行儀が悪い」ものですか?

For i = min To min Step -1
  For j = i + 1 To max
    〜処理〜
    If 条件 Then
      〜処理〜
      Let i = i + 1 '←ココ
      〜処理〜
    Else
      〜処理〜
    End If
    〜処理〜
  Next j
  〜処理〜
Next i

前任者が使っていた20行にも満たないコードですが、1行目に違和感がありました。
Do While/Until文で書き直せるものの、単に自分の理解度が低いだけかもしれず・・・

794 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 15:59:50.04 ID:sXc2xmOg.net]
>>766
俺ならforにしないな



795 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 16:03:06 ID:hwBvm+CU.net]
データ用のシートからデータをコピーできるようになったぜ

ところでクラスモジュールにはどんなメリットがありますか?
functionの意味は分かりましたが、クラスとの違いなどがよく分からず
今本屋で色々探してきましたが、解説が見当たりませんでした。

796 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 16:04:33 ID:HDBeOIwd.net]
>>766
forにせずif文で条件抜けさせる方が読み手に伝わるし良いと思う…
stepで減算してるのに条件次第でi加算するのは処理の流れが分かりづらくなる

797 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 16:05:08 ID:ll49+YlL.net]
一般的に、for nextの方が理解しやすいから、for 文ありきで書いてるだけなんじゃないかな。
感覚的にも可読性やメンテナンス性からも、do loopなどで書く方が良いと思います。

798 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 16:14:12.41 ID:lPN2rvMv.net]
>>768
VBAのクラスはCOMとの相互運用のために存在する
普通に使う分には全く必要ない
というか並のVBAerのスキルではメンテ不能になるからむしろ有害
クラスを使いたくなるレベルの高度な抽象化が必要になるようなら、
そもそもそんなことをVBAでやらなければならないシステム設計が間違っていると考えるべき

799 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 16:49:04 ID:9rN9x/HV.net]
>>767, >>769-770
やはりそうですよね。Do〜に書き直そうと思います。ありがとうございました。

800 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 16:50:17 ID:hwBvm+CU.net]
>771
ありがとうございます。
そこまでの説明が探しきれなかったので助かります。

801 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 16:52:28 ID:69sGe9cG.net]
>>766
Forの使い方を間違ってる
途中で1足して、最後にまた1引くんなら、Do LoopとIfなどを使って条件をはっきり書くべき

プログラミング全般の話となると、コンパイラによっては最初にStep値で割り算して回数を求めてしまうコードを吐くやつもあるので、正常に動かなくなる

802 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:20:23.36 ID:gmb5Wcnr.net]
ブックのなかに、シートがたくさんあって、
マクロ利用者毎にマクロで動かしたいシートが違う。
だから、マクロの実行中に、利用者にシートを選択させて、それをactivesheetにさせたい。
そういうの、できる?

803 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:31:43.88 ID:sXc2xmOg.net]
できる

804 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:35:00.95 ID:Q06gyfKt.net]
>>775
ロジック的に変
Webページやスマホアプリでも最初にログインするのとかあるでしょ?
後から選択するくらいなら最初に分けた方が良いのでは?



805 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:38:57.44 ID:gmb5Wcnr.net]
>>777
できれば、そうしたんだけど。
何人もの利用者が共通で使っているブックなので、シートを分けられないんだ。

シートがゴチャゴチャの状態から特定シートを利用者に選ばせたい。

806 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:42:11.92 ID:ejIEXNUq.net]
>>775
https://qiita.com/rrryutaro/items/b8bdc6d16bdf8c66a190
この辺コピペしたら動くんじゃない?

807 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:54:40.10 ID:Q06gyfKt.net]
>>778
ごめん参りました_| ̄|○>>779

808 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:56:13.87 ID:gmb5Wcnr.net]
>>779
回答サンクス。
でも、もっとコードをシンプルにしたい。

809 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 18:56:56.64 ID:gmb5Wcnr.net]
>>781
マクロを途中で止めて、利用者にシートを選択させることによって(そのシートのどこかのセルを選択させる)、activesheetにさせたいんよ。

810 名前:デフォルトの名無しさん [2020/06/13(土) 19:11:25.34 ID:Ft3NByW3.net]
自分でシートを開いてその後マクロを実行する形じゃダメなの

811 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 19:20:55 ID:gmb5Wcnr.net]
>>783
今は、苦肉の策でそうしてるんだけどね。
諸事情により途中でactivesheet を選ばせたいんだ。

812 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 19:50:08.25 ID:mObNCAEc.net]
これでいい気がする
https://qiita.com/yosatonet/items/b7083d7c95d2d81b1ffa

813 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 20:02:21.69 ID:gmb5Wcnr.net]
>>785
サンクス
ありがとー。

でも、もっと簡単にできんかな。
どうやら、無理っぽいな。

814 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 20:08:18.16 ID:Q06gyfKt.net]
マクロの途中で>>779で作ったUserForm1.Showすりゃ良いでしょう



815 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 20:23:03.52 ID:mObNCAEc.net]
じゃあこれ
https://www.relief.jp/docs/excel-vba-select-cells-application-inputbox-methot.html

816 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 20:28:03.66 ID:sXc2xmOg.net]
>>782
途中でセル選択ダイアログでも表示すりゃいいじゃん

817 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 20:36:43.64 ID:gmb5Wcnr.net]
>>788
ありがと。

それやってみたけど、ちょっと面倒だった。
もう一回やってみる。

818 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 20:42:30 ID:gmb5Wcnr.net]
>>788
やっぱ、いけるかも。

819 名前:デフォルトの名無しさん mailto:sage [2020/06/13(土) 20:42:48 ID:gmb5Wcnr.net]
>>789
ありがと。いけるかも。

820 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 08:41:44.1 ]
[ここ壊れてます]

821 名前:2 ID:ffGowWaR.net mailto: >>790
よく分からんがモードレスにすりゃ良いんじゃねえの?
[]
[ここ壊れてます]

822 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 11:14:04 ID:uWyGdyFQ.net]
>>768
複数の自作関数をセットにして使いまわしたい時とか、
取得した値をプロパティとして保持しておきたい時とか、
自作関数でインテリセンスを使いたい時とか。

823 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 11:20:05.40 ID:ZfTKHz7W.net]
>>794
モジュールと構造体でいいよねそれ

824 名前:デフォルトの名無しさん [2020/06/14(日) 11:21:47.96 ID:435IzS7y.net]
VBA歴まだ1ヶ月
でtxtデータから全て数値をシートに引っ張り出す事は成功したけどそれをVBAで計算させるスキルはないからエクセル関数使ってる
もっとスキルが欲しい



825 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:36:35.03 ID:PywPq9gj.net]
関数でできることは関数でやりましょう(例外あり)

826 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 12:52:53.71 ID:UBYu/Pyg.net]
関数ばかりでもいかんですう

827 名前:デフォルトの名無しさん [2020/06/14(日) 13:01:56 ID:435IzS7y.net]
引っ張り出した数値を
ABS関数
ROUND関数
MAX、MIN関数
IF関数
でだんだんフィルターを通す感覚で
で本来の数値に対応させてる
VBAでそれをやる力を得るには5年はかかるな
俺じゃ

828 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 13:26:59.00 ID:0qngbhsm.net]
限定的な使い方になるが、連想配列でユーザ定義型使いたい時に代わりにクラスモジュール使うって手がある

829 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 13:44:32.79 ID:attwzNFV.net]
質問ですが、列が3つありそのうち2つが検索用ワードで
これを元に検索し3つ目のセルにあるワードを配列に収めていく処理を行いたいです。

例えば、こういったテーブルがあります。
すずき、いちろう、170
すずき、じろう、171
たなか、さぶろう、172

検索条件を1列目「すずき」2列目「条件なし」とした時、170,171を配列に収める
検索条件を1列目「すずき」2列目「いちろう」とした時、170を配列に収める

と、やろうとした時どういった処理が考えられるでしょうか。

830 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 13:51:33.71 ID:nNGIeJAo.net]
データベースのアンド検索クエリ覚えなはれ

831 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 13:52:24.03 ID:0qngbhsm.net]
>>801
オートフィルタで抽出して3列目を配列に格納

832 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 14:09:01.53 ID:NfMb0cpJ.net]
>>801
まず表の範囲をテーブル化
そしたらテーブル操作の処理使えて簡単
officetanaka.net/excel/vba/table/

833 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 14:16:14 ID:UBYu/Pyg.net]
>>801
逆にどういった処理も考えられないの?

834 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 14:28:07 ID:attwzNFV.net]
ありがとうございます。
テーブル化の方向で調べてみます。



835 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 17:08:34 ID:zv9EPLCI.net]
ユーザー定義関数をさ、AutoFill使って連続した複数セルに「=MyFunction()」みたいな感じで
代入していくじゃん
数式は正確に代入されてるのになぜか#VALUE!のエラーがでるんだよなぁ

計算対象になってるセルの1つをダブルクリックして値を入力するモードにしてから
そのまま何もしないでエンター押すと、さっきまで#VALUE!だったところが
再計算されて正常にセルに表示される

オートフィルに備えて連続セルの一番先頭にVBAから個別に代入しておいたセルがあるんだけど
ここはちゃんと計算結果がでてる
んで、このセルを始点にして手動でオートフィルかけて数式いれるとちゃんと計算される
手動オートフィルの結果代入された数式とVBAのAutoFill使って代入した数式を比較しても全く同じ
でもVBAのほうだけは#VALUE!ですわ

これ一体なんなのさ

一通り調べてわからんかったからAutoFillやめてForで回していれたった
やっぱ俺にはこういう原始人的なコードがあってるわ

836 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 17:36:38 ID:0qngbhsm.net]
>>807
計算対象のセルが更新された時自動で関数が処理される設定になってないから

837 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 17:49:03.80 ID:AaZP5Hye.net]
>>806
ワシのやり方を参考にするなら
Youtubeのチャンネル登録してな。

838 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 18:50:39.41 ID:zv9EPLCI.net]
>>808
手動・自動のやつでしょ
もちろん自動になってるわ
Forで回して数式代入したときは普通に計算されるから理由としてはいまいちじゃね
あと手動でオートフィルしてもいけるしね

表の右端に何列か並んでる数式は全部計算されるんだけど
下端にあるやつがだめなんだよね
どちらも全く同じパターンで代入してんだよね

まぁForでできるからいいんだけどな

839 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 19:19:38 ID:0qngbhsm.net]
>>810
シートじゃなくて関数の設定
volatire

840 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 20:00:28.24 ID:Nip9LUw0.net]
>>811
volatile (揮発性) じゃね?

841 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 20:18:20.66 ID:95POjxnT.net]
>>807
> =MyFunction()
みたいに引数がないと>>811が言うようにvolatile指定しないと再計算されない
引数にセルとか範囲を指定してあると指定されたセルや範囲の値が変更されたら再計算される

842 名前:デフォルトの名無しさん mailto:sage [2020/06/14(日) 21:59:15.66 ID:NTnc+gBz.net]
>809
本人?。GW終わって更新控えめな気がする

843 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 00:54:28.92 ID:otdT67Yk.net]
フォームを開いている際にセルをクリックしようとしても阻止されるんですが、
この行動を行った際にフォームを閉じるという処理をすることはできますか?

844 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 00:59:25.05 ID:AC0AKbql.net]
ユーザーフォームのイベントで制御できなきゃ無理じゃね
一覧くらい見たんだろ



845 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 02:14:12 ID:VIqxNPAl.net]
>>814
この人はダメだね。
コメントでちょっと突っつかれただけで
コメント欄オフにするしプライドが高すぎ。
知識や経験が豊富で教え方も上手いとは思うけど
ユーチューバ―には向いてないと思うわ。

846 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 05:44:07.25 ID:YCbdWLsV.net]
>>811
>>813
Application.Volatile
入れてみた

結果だけど、やっぱボタン押して数式代入した直後はダメだった
変らず#VALUE!
変化があったのは計算対象になっているセルを1つ変更すると、
MyFunctionが入っているセルの全てが再計算されて正常値が表示されるっていう点ね
Volatile入れる前は、変更セルを計算対象としてるセル1つだけが再計算された

ちなみにMyFunction(rng As Range)です。すんません
あと、これ重くなりそうでちと考えてしまう

847 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 10:48:29 ID:zn0xvlk+.net]
>>818
ボタンのコードの後ろに、Application.Calculate とかを入れる

848 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 11:02:05 ID:zn0xvlk+.net]
>>815
フォームを閉じるにはUnload ステートメント、非表示にするだけなら hide メソッドを使う

セルクリックが目的なら、ShowModal=False か、フォームのShowメソッドで vbModeless を指定すれば、閉じなくてもいいよ

849 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 22:32:32.01 ID:qQkMiS3I.net]
>>818
よくわかってなくてすまぬが数式入ってるセル全部選択して
Selection.Value = Selection.Value
とか「=」を「=」に置換するとかして内容同じだけど編集したことにすると
全部計算される、ってのは根本的な解決方法じゃないけどそれは別の問題?

850 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 22:40:50.61 ID:eWIek9um.net]
>>821
代入で再計算させるなら formula = formula だぞ

851 名前:デフォルトの名無しさん [2020/06/15(月) 22:42:03.32 ID:GtKitEiM.net]
このスレの住民ってVBAエキスパートとか余裕な感じ?

852 名前:デフォルトの名無しさん mailto:sage [2020/06/15(月) 22:58:28.87 ID:MWB6z4Ac.net]
余裕でダメだと思う。
運転歴20年のやつが、教習所の学科試験に通るかどうか。

853 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 01:37:43.85 ID:vbVHH0Hs.net]
練習問題を見た感じ、満点は無理だけど合格はできると思う

854 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 02:23:10 ID:4czdKWOA.net]
人によるだろう



855 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 08:13:35.35 ID:4RAL3CE7.net]
>>819
それ以前試してだめでしたわ
>>821
>>822
解決方法なのかどうかは置いておいて、面白い視点だなって思いました
Selection.Formula = Selection.Formula で、問題のあった2行のうち1行は行けました
この2行の違いを分析すると何か見えてくるかもしれないなぁ

似たような方法なんだけど、これはいけた

Dim ary
ary = Sheet1.Range("G11:AH11")
Sheet1.Range("G11:AH11") = ary

数式は表の最下部の行 G50:AH50 の各セルに入っていて、
例えばG50の数式はG11を引数の一部として使っている
計算の対象となっている値の一部を代入し直してみたってこと

Forで回して数式入れていくのは見た目ごちゃごちゃするから
わかりやすさっていう点ではこっちの方がいいのかな

856 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 12:20:48.09 ID:6wBq1IET.net]
>>824
運転歴20年の奴は余裕で通る。
というか、はっきり言ってVBAエキスパートは初心者と変わらんよ。
某掲示板で質問者にもっと勉強してね的なこと言ったら持ってたようだった。

857 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 19:13:50.26 ID:Kui7C9E3.net]
リストビューなるものを触ってみましたが2点分からないです。
@データを転記する際にwith文を使うとうまく出来て、使わないと一行ずつズレるのは?
Me.ListItems.Add
.Text = 111
.SubItems(1) = 222
.SubItems(2) = 333
End With
Addして追加だからズレるのだろうけど、withって単なる省略だから同じ意味じゃないの?

A転記したリストビュー全項目ループするにはどうしたいいですか?

858 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 20:14:01.04 ID:v7FumBBx.net]
Doしたらいい

859 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 21:46:13.61 ID:aBdT/SFF.net]
いや呼び方の問題とか、FormatだのStrComp関数だのあんまり使わんの出るから模試はやったほうがいいよ

860 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 21:52:16.10 ID:aBdT/SFF.net]
>>829
withはコード省略じゃなくて参照。
(増やす)ってメソッド処理は一回だけで、(増えた項目)って出力インスタンスを参照できる形になる
with 使わないと毎回(増やす+編集)の処理になる

861 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 21:57:13.61 ID:aBdT/SFF.net]
項目じゃなくてリストの間違いだった

862 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 22:40:42.45 ID:woSalLPH.net]
>>827
Selection.Calculate でもダメなんですよね?

863 名前:デフォルトの名無しさん mailto:sage [2020/06/16(火) 23:47:36.73 ID:cErksS8E.net]
>>822
そうそう間違えました
表示形式が反映されないときに.Value使ったんでついそれ書いちゃいました

864 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 00:48:13.69 ID:VnGmvv1H.net]
>>835
表示形式反映させるなら.Formula = .Formula では



865 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 13:19:05.23 ID:vz74rE0X.net]
.Shimura = .Ushiro

866 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 15:24:21 ID:3v2Pocgc.net]
そのコマンド打ったら参照先が見つかりませんってエラーが出たんだが

867 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 15:55:47.59 ID:F6Gn58oB.net]
だめだこりゃ!

868 名前:デフォルトの名無しさん [2020/06/17(水) 17:19:39.75 ID:AebhaO3Q.net]
前スレの人達のくれた今の職場にいる限り永久に使える心臓部になるプロシージャ3つ
これのおかげで救われた
後はひたすら勉強しないといけない
ただそのせいで毎日

869 名前:夜中の2時とかまで強迫観念に捕らわれたように本やサイト見て体壊しかけてる
前スレの人達ありがとう
[]
[ここ壊れてます]

870 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 17:52:05.46 ID:VnGmvv1H.net]
独り言板へどうぞ

871 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 18:14:13.33 ID:LyT08W7k.net]
そこまで初心者の人がやらなきゃいけないのか…
専門の派遣でも雇えば…

872 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 18:25:49 ID:1+VGIPZ0.net]
>840
前スレのどれ?

873 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 19:41:41.88 ID:3u8uTgOs.net]
まあ嘘だろうけどな、そんなん

874 名前:デフォルトの名無しさん [2020/06/17(水) 20:29:26.87 ID:Pc4G9CL1.net]
前スレ見えないけど
フォルダ内のテキストすべての特定の部位から文字を全部抽出するコード
これです



875 名前:デフォルトの名無しさん [2020/06/17(水) 20:47:48.75 ID:6I8rhd2p.net]
車輪の再発明どころか劣化真似事をありがたがるような馬鹿は消えろよ

876 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 21:02:20.52 ID:UkLP/htk.net]
>>836
数式を値で張り付けたときに表示形式が反映されなかったんでValueだったんですよ

877 名前:デフォルトの名無しさん mailto:sage [2020/06/17(水) 21:30:10.13 ID:VnGmvv1H.net]
>>847
値貼り付けでは反映されんよ

878 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 00:14:55.64 ID:+xg8PxB0.net]
下記のような2次元配列があります。
1,りんご
2,ばなな
3.みかん

これの果物名の列だけをセルに代入したいですが、簡単な方法はありますか?
現状、果物の列を一端列数0の配列に入れなおしてそのままセルに代入する案しか思いつきませんが、
もっとスマートな方法あれば教えてください。

879 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 00:29:49 ID:b73sLWwm.net]
行列入れ替えは考慮外なの?

参考は沢山出てくる
EXCELのVBAで2次元配列の特定の列または行を1次元配列に変換する方法
qiita.com/takahasinaoki/items/1295c3df5ddfb13bdf8e

880 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 01:18:10.70 ID:AEhoYLDr.net]
>>849
3だけピリオド

881 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 08:45:41 ID:CbKzbr3Z.net]
>>849
貼り付け先の果物の前の列が消されても良いなら配列から1、2、3消してそのまま貼り付ける。
駄目なら貼り付け先の値を配列に入れてから貼り付ける。

貼り付け先の値を入れるのは本末転倒だからそういうデータが少ない場合以外は勧めない。

882 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 09:42:50.65 ID:1Z+MjfLn.net]
>>849
地道に入れ直すしかない

883 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 15:10:31.12 ID:JIQPCGLI.net]
てか配列から直接セルに代入しないといけないってのは
データ数が多いとか速度重視したいとか?
そうでないなら基本通りにFor使って入れりゃいいだけなんだけど

884 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 15:51:42.38 ID:AEhoYLDr.net]
セルに入れるのがそもそも簡単なのに何ができないんだかわからん



885 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 16:29:20.31 ID:DGNmlHkR.net]
おまいら質問をちゃんと読んでるか?
「簡単な方法はありますか?」なんだから、Forで回すのは嫌ってことだろ
つまり回答は「そんな方法はない」

886 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 16:32:36 ID:DGNmlHkR.net]
ステップ数を減らしたいだけなら、一旦そのまま全部ワークシートに入れて2列目だけコピペか1行目を削除すれば数行で完結する
たぶんForより速い

887 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 16:33:11 ID:DGNmlHkR.net]
書き間違い→1列目を削除

888 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 17:30:14.12 ID:AEhoYLDr.net]
質問がどっかの問題の引用っぽく感じたので答えはかかないけどね

889 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 17:38:49.86 ID:Kimfxpnn.net]
同じ社員同士なのにエクセルの便利機能とかを
情報共有しないのってなんなんだろう

890 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 17:57:51.44 ID:1Z+MjfLn.net]
ループからの抜け方、@とAどっちが推奨?

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

891 名前:do
loop

A
do while
 for
  if 脱出条件 then exit do
 next
loop
[]
[ここ壊れてます]

892 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 17:57:55.15 ID:AEhoYLDr.net]
嫌われているんだろ

893 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 17:58:44.91 ID:1Z+MjfLn.net]
>>860
今まで関わった職場わりとしてるが

894 名前:859 mailto:sage [2020/06/18(木) 18:01:15.31 ID:1Z+MjfLn.net]
@の3行目のifは脱出条件な



895 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 18:12:03 ID:AEhoYLDr.net]
>>861
処理の抜けや他の処理に影響がないならという条件付きで?、
場合によっては exit sub 、exit function でも書く

896 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 19:24:08 ID:LKxMxESP.net]
do whileの条件とifの条件ををandで繋いでdo while
loop行の前でi=i+1(forのカウンタ代わり)
これでよいのでは

897 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 19:39:21.23 ID:ck4WAMd+.net]
GoToの使用を躊躇しない。

898 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 19:42:12.81 ID:1Z+MjfLn.net]
>>866
二重ループの抜け方の作法を聞いてるんだが

899 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 19:48:21.18 ID:KBH9L3ob.net]
do whileとforで2重ループするのが確定で、外側まで一気に抜けるのが確定なら2を選ばない理由がない

900 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 19:53:02.72 ID:DGNmlHkR.net]
>>868
二重ループの内側から一気に抜けたい時は、俺なら内側のループを別プロシージャにするか、Do Loopを二重にする
コード量によってはフラグ変数やExitは見通しが悪くなる、別の言い方をすれば終了条件がわかりづらくなるからあんまり使いたくない

901 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 20:17:54.42 ID:1Z+MjfLn.net]
>>866,869,870
とりあえず処理に問題なければ一気に外に抜けること自体は問題ないってことか
確かにDoに変えるのも手だな
適当に使い分けることにするわサンキュー

902 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 20:18:23.62 ID:1Z+MjfLn.net]
間違えたわ>>865

903 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 20:21:15.52 ID:ao9b7VBW.net]
>>861
囲碁なら上、オセロなら下

904 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 20:25:42.22 ID:eqFwPDXL.net]
すごく個人的には、Do Untilで書いた方が「抜ける!」って読みやすい



905 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 20:26:39.51 ID:eqFwPDXL.net]
Do whileよりって話ね

そう書けば抜ける複数条件をDoの後ろに書いて違和感が無い

906 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 20:28:18.94 ID:XkUbux+a.net]
これ… >>873に『その心は?』って聞いてあげた方がいいの?

907 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 20:33:29 ID:ao9b7VBW.net]
>>876
おじいちゃん出しっぱなしで片付けないんだもん

908 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 20:34:24 ID:vZk8Xm54.net]
Gotoはもちろんのこと、余程のことがない限りはExit For(Do)使うよりはExit Function使った方がいい

909 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 21:01:16 ID:ob2ctoKl.net]
>>878
そんなこたあね―な。

910 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 22:48:55.15 ID:Swy0cO/s.net]
Do While
 何で
Loop

While
 2つあるの?
Wend

911 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 23:00:26.73 ID:6Vkb8BK5.net]
vbaだから

912 名前:デフォルトの名無しさん mailto:sage [2020/06/18(Thu) 23:21:26 ID:1Z+MjfLn.net]
>>880
while〜wendは過去の名残
今はdo whileを使うのが正しい

913 名前:デフォルトの名無しさん mailto:sage [2020/06/18(木) 23:40:35.48 ID:Cax/ofky.net]
一応、while wendは最後までループ抜けさせないぞって読ませ方ができる
知ってる人が少なくなってるからむしろ逆効果のお節介となってきているが

914 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 00:17:23.49 ID:NwluTwH5.net]
行番号とか代入のLetとかも使ってるやつはいない
過去の名残があちこちにあるのがVBA



915 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 08:29:01.10 ID:VZXzW3Q1.net]
do while〜loopって構文が気に食わんわ

do [処理] while [脱出判定] loop
もしくは
while [脱出判定] do [処理] loop
のほうが思考に沿う
ってかdo必要?

916 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 09:57:59.84 ID:UXZn7YtP.net]
VBA必要?

917 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 09:58:43.65 ID:wZIpnWDZ.net]
Excelが必要としてるんだ

918 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 16:55:48.19 ID:8jNiNgQB.net]
だってVBAだから

919 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 18:51:31.92 ID:c4aN/6Uq.net]
エクセルマクロとして代替えがないから必要だな

920 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 21:17:20.11 ID:RlTsj/W2.net]
職場の人が書くマクロ、わかりやすいんだけど無駄改行多くてスクロールしないと全体像掴めないでつらい

921 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 21:26:36.78 ID:8GB492Jb.net]
>>885
While [脱出判定]
 [処理]
Wend

922 名前:デフォルトの名無しさん mailto:sage [2020/06/19(金) 23:55:48.34 ID:+/P4LWyU.net]
>>890
実は強制終了対策で改行してるとか?

923 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 00:04:01 ID:6cdt+s4Y.net]
>>885
構文解析でトークンの先読みが少なくて済むための配慮じゃないかな、知らんけど

924 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 00:41:32.09 ID:YZMPfrl8.net]
>>885
英語として

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

というのと

While if a is bigger than a, do something.

どちらが自然かという問題だったようだ。どっちも変だけど



925 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 02:09:29 ID:qvmNBmpu.net]
>>890
職場での問題なら職場内で解決しなされ

926 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 04:41:54.35 ID:heakYJWv.net]
ちょ、VBAのCollectionのAddメソッドってvalue/keyの順番だったのかよぉ
C#もJavaもPythonもkey/valueの順だから勘違いしてたわ!
なんかおかしいとおもった

927 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 08:01:08.69 ID:ygihVcRE.net]
>>896
Add時にKeyを省略できるからね
省略するとKeyがどうなるのかは知らんけど

928 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 09:40:22.78 ID:heakYJWv.net]
>>897
重複排除できてねぇぢゃねぇかクソ言語がぁぁぁ!って思ってましたごめんなさい

929 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 10:42:49.25 ID:m9vPjHEn.net]
>>898
重複排除したいならdictionaryの方がいいんじゃないか

930 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 12:12:13.86 ID:RmKRgXjX.net]
>>890
それは1プロシージャの行数が多いということかな?
それはダメダメだ。

そういうことになることはあるけど、本人が書ける奴なら自分でも分かってるかもね。
時間があれば直すんだけどってのは時々ある。

931 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 12:16:26.19 ID:RmKRgXjX.net]
>>896
Dictionaryと逆だから注意。

932 名前:デフォルトの名無しさん mailto:age [2020/06/20(土) 12:24:38.59 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 12:44:36 ID:ygihVcRE.net]
>>898
重複排除したきゃKey指定すればいいだけだろ
てか、そういう使い方しかしたことないわ

934 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 12:57:07 ID:m9vPjHEn.net]
keyの位置間違えててできなかったって話だろ…



935 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 15:27:33.55 ID:ygihVcRE.net]
ああすまん、よく読んだらそうだな

936 名前:デフォルトの名無しさん [2020/06/20(土) 15:53:54.10 ID:wuXUOHn9.net]
PCに疎い人達の集まる職場

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

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

もう嫌だ

937 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 15:58:25.34 ID:MH9+mSJC.net]
300円とか1000円って何?

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

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

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

941 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 17:02:57.89 ID:wVoXfuuE.net]
まぁ、「実際の能率の向上」より「誰にでも分かりやすく使い易い」にウエイトが傾いてるってのはよくあることじゃね。
どんな評価方法か知らんけど。

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

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

・上司のその時の気分、あるいは好かれ具合
⇒それな

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

943 名前:デフォルトの名無しさん mailto:sage [2020/06/20(土) 17:21:48.48 ID:XQZF02H8.net]
相談もなしに勝手なマクロを組んだことで減点対象になったのだろう
もしかしたら、その作業は近々システムの変更でなくなる予定だったかもしれない
作業以外の目的があったのかもしれない

残業が多いなと思っていたら、
余計なものを作って遊んでいた、減給されないだけましだろう

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



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

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

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

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

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

950 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 14:00:37.96 ID:ANltB6r3.net]
いや、別に。

951 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 15:15:50.34 ID:0WnnnX3x.net]
両方とも別に

952 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 17:39:52.32 ID:1ON8fipo.net]
>>919
他の奴らってそもそも業務が違うだろ

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

954 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 17:50:26.78 ID:HGSDkuyA.net]
>>919
読んでるこっちが恥ずかしい



955 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 18:05:28.37 ID:xIpMoW7x.net]
スレチだけどPHPは
ハイパーテキスト・プリプロセッサだってのに
初歩でも神呼ばわりだぜ

【PHP】下らねぇ質問はここに書き込みやがれ 11
itest.5ch.net/mevius/test/read.cgi/tech/1591334726/96-107
96
> hoge.com/****
>に指定した数字入れて、html出力ってできますか?

103 foreach(

107
>>103
神!おっぱ・(自粛)

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

957 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 19:46:46.68 ID:HGSDkuyA.net]
簡単なのはVisibleプロパティをFalseからTrueにする方法

958 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 19:54:02.33 ID:apqHGiEy.net]
>>926
ユーザーフォームの使用になる
e-tech.life.hyogo-u.ac.jp/contents/kyouzai/vb-ref/contents/part1/button_visible/button_visible.html
ユーザーフォームのイベントで条件を記述してやるのが良い

959 名前:デフォルトの名無しさん mailto:sage [2020/06/21(日) 19:54:53.04 ID:jOeQJVeR.net]
>>926
グループ化使うとか

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

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

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

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

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



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

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

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

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

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

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

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

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

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

974 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 10:18:08.71 ID:f1XJDlES.net]
バイトに雑用させるのは普通だし年齢関係ないわ



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

976 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 10:45:26.13 ID:DpiCYHaq.net]
vbaってプログラミングなの?

977 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 11:16:34 ID:DTKm8QVZ.net]
プログラミングじゃなかったらなんなんだ
物書きか?

978 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 11:19:23 ID:DpiCYHaq.net]
Excel関数の延長?

979 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 12:06:22.79 ID:f1XJDlES.net]
正式な定義を知りたきゃMS公式でも見ればいいだろ…

980 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 12:10:34.37 ID:DpiCYHaq.net]
申し訳ありませんでした

981 名前:デフォルトの名無しさん [2020/06/22(月) 12:26:25 ID:qDFuj4q3.net]
馬鹿ばっか

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

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

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

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

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



985 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 23:08:43.37 ID:eYhHFxw6.net]
VBAでイキるの面白すぎるからやめて

986 名前:デフォルトの名無しさん mailto:sage [2020/06/22(月) 23:16:11.85 ID:R2BScS4S.net]
やめたら面白くないだろ

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

988 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 01:00:04 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 01:09:31.87 ID:kv8byCI9.net]
for r=1 to 5
if 入力されたセルじゃない場合
cells = 入力された数値かける定数
end if
next

みたいな感じでは?

991 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 01:33:11.82 ID:kv8byCI9.net]
あー、これじゃダメみたい、すみません。

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

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

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



995 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 05:39:38.41 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 07:50:59.28 ID:xSXJEKQO.net]
意図が伝わるようにユーザーフォームで入力させた方がいいように見えるな
visibleのtrue ,false切り替えでうまくやりたい

997 名前:955 mailto:sage [2020/06/23(火) 09:36:33.10 ID:bSgedWTD.net]
ご教示下さったみなさまありがとうございます

>>963
丁寧にありがとうございます
書いて頂いたのでなんとかなりそうです

998 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 10:14:19.39 ID:eVy5K5L9.net]
コピペ

999 名前:961 [2020/06/23(火) 12:34:05.64 ID:5v5sJ6te.net]
>>965
スマホで寝ながら打ったから
Win7のExcel2010にコピペして確認してみたらミスってた
訂正。大文字だったスマソ then>Then
https://i.imgur.com/LQvQjn9.png

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

1001 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 16:26:51.99 ID:lLVW3adv.net]
UsedRangeの使えなさに絶望しました
あれってなに目的で使えんの?

>>968
おれもそれチェック代わりに使ってるんで
変数はほぼ全て大文字スタートだわ
他言語だとやらないけどVBAはエディタがあれなんで

1002 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 17:18:02.36 ID:JWFUfSAs.net]
>>969
間違った使い方してるだけじゃないのか

1003 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 18:21:08.83 ID:coVE1fyX.net]
>>969
グラフ自動生成するときとかに使ってる

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



1005 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 18:28:15.83 ID:X4/0OZ1g.net]
UsedRangeは普通に使うぞ。
寧ろ、一番使うかも。

Excelの固定じゃない範囲を取得する場合、これでOKというようなものが無い。
都度考えることになる。

1006 名前:デフォルトの名無しさん mailto:sage [2020/06/23(火) 21:35:23 ID:LvHFRgi0.net]
値化とか

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

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

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

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

何がだめ?

1011 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 10:26:15 ID:7kmsZdqz.net]
FiVBAって命令あるの?

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

1013 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 13:58:43 ID:LpqCs0qI.net]
なにがだめって聞かれても全てがとしか

1014 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 14:29:06 ID:jVCudKEf.net]
ちゃんと内容を確認しないのが駄目



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

1016 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 15:31:45.69 ID:7kmsZdqz.net]
>>983
https://www.moug.net/tech/exvba/0050116.html

ここでも参考にしな

まず確実に言えるのは、Nothingのエラー対処ができてない

1017 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 16:03:07.42 ID:A95Qwidx.net]
>>983
田中がないんだろどうせ

1018 名前:デフォルトの名無しさん [2020/06/24(水) 16:11:20.98 ID:ec8khzg7.net]
Set Target = Range("P:P").Find(What:="田中")

この田中を変数というか特定のセルの値にしたい場合どうしたらいい?
A1のセル内容を参照したいとする

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

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

1021 名前:デフォルトの名無しさん mailto:sage [2020/06/24(水) 17:53:24 ID:A95Qwidx.net]
自己紹介や自分語りはいらん

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

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

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



1025 名前:デフォルトの名無しさん [2020/06/25(木) 14:52:26.82 ID:fOnLoXil.net]
usedrangeじゃ駄目なんですか?

1026 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 15:35:07.92 ID:eDJAI9Nl.net]
テーブルにすれば?

1027 名前:デフォルトの名無しさん mailto:sage [2020/06/25(木) 15:38:48.25 ID:emOdy//g.net]
cellsでそこから最終行まで指定すればいいじゃない

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

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

1030 名前:デフォルトの名無しさん mailto:sage [2020/06/25(Thu) 17:54:02 ID:xz2BRr ]
[ここ壊れてます]

1031 名前:37.net mailto: >>992
何故最終行までという指定を省こうとするのか?
先に真っ当な手順で実現できてないのに想像で勝手に省いてうまくいかないってどういうつもりなのか?
[]
[ここ壊れてます]

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

1033 名前:デフォルトの名無しさん [2020/06/25(Thu) 18:26:51 ID:BKkovaqh.net]
何そのダメ先生

1034 名前:デフォルトの名無しさん mailto:sage [2020/06/25(Thu) 18:32:44 ID:0L1EfJ/H.net]
おだてられて浮かれてるだけだなw



1035 名前:デフォルトの名無しさん mailto:sage [2020/06/25(Thu) 18:45:05 ID:goJhPQKd.net]
うー

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

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






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<267KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef