1 名前:デフォルトの名無しさん [2017/11/08(水) 11:26:30.13 ID:+KUB1/9hd.net] スレ立ての際は一行目に !extend:checked:vvvvv:1000:512 と入れてスレ立てして下さい ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※関連スレ VBAなんでも質問スレ Part2 mevius.2ch.net/test/read.cgi/tech/1432173164/ Access VBA 質問スレ Part1 mevius.2ch.net/test/read.cgi/tech/1328536426/ Excel総合相談所 126 https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/ ※前スレ Excel VBA 質問スレ Part50 mevius.2ch.net/test/read.cgi/tech/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
803 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 09:09:26.61 ID:PwPBZUwb0.net] >>778 バージョン管理システム入れてないなら同じになるでしょ。 俺も同じくでファイル名_Ver nnn.xlsmと言うかたちで3世代別フォルダに保存してるけど (時たま忘れたりする^^;
804 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 09:49:30.47 ID:aMifsa1T0.net] マクロ有りエクセルファイル自体にデータを入れて運用するのと、 データは別エクセルファイルにしてマクロ有りエクセルファイルでデータ入りエクセルファイルを操作するのと、 どっちがメンテナンスしやすい作り方だろうか? いつも悩んでしまう
805 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 09:52:29.70 ID:35C6Q16O0.net] アドインマクロにしましょう
806 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:06:17.25 ID:fsRyV04Q0.net] マクロのバージョン管理ってどうやってます? インポートファイルを分けすぎると不便なのでshareFanction見たいなインポートファイルに使いそうな関数全部入れてますが、初心者なもので開発中に関数の引数や戻り値を変えたくなるような場面が多々あり 今までのshareFanctionと互換性が保てなくなりますが、引数と戻り値を修正した関数以外でバグを潰したような関数は最新を使用したいです。 今はコピペで対応してますが
807 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:27:58.03 ID:rNrttlhS0.net] 個人なのか仕事なのか書かないと有効なレスがつかないのではないかな
808 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:34:47.18 ID:fsRyV04Q0.net] >>784 個人です 個人で開発、個人で使用
809 名前:ナす [] [ここ壊れてます]
810 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:36:51.05 ID:rNrttlhS0.net] >>785 ならGithubとSourceTreeで快適にできるんじゃないの? 俺も全然高度な使いこなしできてないけど楽ちんだ
811 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:55:17.97 ID:fsRyV04Q0.net] >>786 ありがとうございます ざっとみた感じソースファイルのバージョン管理はできそうですが、 例えばサーバーあるいはローカルマシン上にそのshareFanctionを使用している分散しておいてある場合、 それぞれのマクロを調べて更新したいファイルを選択、修正版マクロを適用する、 みたいな使い方ってできるんですかね?
812 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:57:21.02 ID:fsRyV04Q0.net] >>787 >>例えばサーバーあるいはローカルマシン上にそのshareFanctionを使用している分散しておいてある場合、 修正 shareFanctionを使用しているファイルが
813 名前:デフォルトの名無しさん [2017/12/31(日) 12:53:47.48 ID:TXRnAgcd0.net] ヴァージョンって仕事じゃないからいつから何時まででUP履歴にしたらいいかわからなん 機能変更したら必ずかもしれないけど、個人用だとやりながら変更しているからバージョン数が半端ないことになる。
814 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:10:06.47 ID:sYPUhsnja.net] バージョン管理は大変だよな インストーラーみたいなのつくってどうにかしようとしてるがうまく行くかわからん
815 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:25:39.05 ID:pVPyHW7p0.net] >>789 > バージョン数が半端ないことになる。 問題ないでしょ
816 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:31:04.61 ID:fsRyV04Q0.net] >>790 専用のソフトがなければ1sheetをマクロ関数管理用にして各関数内にver x.y.z(x変更で互換性無し、y変更で互換性あり、z変更は互換性ありバグ修正みたいにして) モジュールをインポートしたファイルをオープン時に、イベント検知で所定の管理ファイルを検索、新しいバージョンがあれば自動で今までのモジュールを解放、y,zバージョンが最新のファイルをインポート みたいにすれば実現可能そうですが結構手間がかかりそうで…
817 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:56:42.14 ID:hllNi94Va.net] マクロで書けよ。 バージョン管理。 セキュリティが低下するけどな。
818 名前:デフォルトの名無しさん [2017/12/31(日) 18:06:59.07 ID:nOUozIFo0.net] そもそも論として、たかがマクロでバージョン管理が必要になるような力作()作るなよw キミたちは一体エクセルマクロで何を築こうとしておるのかねw
819 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 18:13:51.04 ID:2b4EaTgg0.net] 仕事でVBA扱ってると色々な理由から小さいマクロでもバージョン管理が必要になってくる。
820 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 19:27:51.32 ID:rNrttlhS0.net] >>794 内容がぐちゃぐちゃになったら困るものにはバージョン管理が必要さ 力作()でなくても再構築はかったるいからな
821 名前:デフォルトの名無しさん [2017/12/31(日) 19:58:25.49 ID:nOUozIFo0.net] >>796 力作()じゃないのにぐちゃぐちゃになるってどんだけ当てずっぽうにマクロ書いてんだよw
822 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:00:31.71 ID:pVPyHW7p0.net] 社内に展開するとかでサポートが必要ならバージョン管理ぐらいは必須だろ >>794 は無知すぎ
823 名前:デフォルトの名無しさん [2017/12/31(日) 20:24:53.68 ID:nOUozIFo0.net] >>798 確かにおまえらの考える事は見当もつかんけどなw 別にいいや無能思考に明るくならなくてもw
824 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:28:42.31 ID:1PdKj8Yj0.net] またメゾット君か。
825 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:42:44.41 ID:rRjJbr8wx.net] メゾット君って雰囲気ですぐ分かるよね
826 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:54:32.08 ID:KnonKKai0.net] OLDフォルダにファイル名の後に日付つけたファイルをコピーしてる
827 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 21:20:00.26 ID:A+5By6dM0.net] ていうかバイナリファイルをバージョン管理システムに登録したところで 単なる時系列バックアップにしかならんうえに シートを更新しただけでバージョンが変わるから意味ないのでは
828 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 22:37:10.58 ID:rNrttlhS0.net] 力作2.0
829 名前:デフォルトの名無しさん [2017/12/31(日) 22:50:02.43 ID:InzisC8s0.net] 悩みはみんな一緒なんだね。俺はバージョンアップに悩んでアドイン化したが これはこれで悩ましいところがあるんだな。シートを初期化(つまりClearとかClearContents)する のにもよーく考えないと結構危ない。アドインはどのブックでも実行出来てしまうからPCに疎いヤツが使うのも考えると 別の方法を考えた方が良いんだろうかとか考えてる。
830 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 22:55:00.56 ID:rNrttlhS0.net] >>805 アドインてxlamのこと? だったらそのシートは一切使っちゃダメだよ プログラムモジュールだけの存在にするべき
831 名前:デフォルトの名無しさん [2017/12/31(日) 23:12:43.15 ID:InzisC8s0.net] >>806 そりゃ分かってるての。ブックを指定する時は「ActiveWorkBook」とするしかない(決めつけはよくないが) からよーく考えてコードを書かないと危ない場合もあるって話。使う連中の9割はマクロどころかシート関数も 知らないような連中なんだから。
832 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 23:41:30.90 ID:rNrttlhS0.net] >>807 ・処理をスタートするFunction や Subはアドイン側にはない。当該Book側にある ・そのFunction や Subがアドイン側の機能を使う だとするとアドイン側に「ActiveworkBook」なんて書く必要はなくて、処理対象のSheetやRangeを 引数で受け取るだけになると思うんだがね
833 名前:デフォルトの名無しさん [2017/12/31(日) 23:52:05.59 ID:InzisC8s0.net] >>808 作業するBookはxlsxなんだよ。マクロはxlms側に書いてある。 なんでこうしたかというと、仕事柄、ブックは地方自治体に提出する場合があるから。 何の事かわからないだろうからもうちょっと書くと、測量データの野帳なんだよ。
834 名前:806 [2017/12/31(日) 23:53:24.81 ID:InzisC8s0.net] xlmsじゃねえや、xlamだな。
835 名前:デフォルトの名無しさん [2018/01/01(月) 04:27:25.57 ID:WDGj6QXoH.net] >>809 マクロ有効ブックから マクロ無効ブックを開いて処理して保存して閉じる という方法も有ると思う
836 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 09:37:05.14 ID:hnfikatx0.net] 自動処理したいなら>>811 だろうし、操作者が開いて何かしたいならメニューに追加しとけばいいだけだと思う >>809 は無知なのかちょっと頭固いんだろうな
837 名前:デフォルトの名無しさん [2018/01/01(月) 13:40:19.53 ID:iV2QIiO7H.net] >>812 作業ブック側にコード書けないんだよ。知ったかすんなよボケ
838 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 13:55:03.62 ID:7v1CUCWaM.net] >>813 作業ブックにコードなんか要らんだろ w 知らないなら黙ってろ てか、アドインでメニュー追加なんて基本中の基本だと思うが toshimana.hatenablog.com/entry/2014/01/26/204938
839 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 14:25:45.74 ID:7yffOGmB0.net] 知らないことを素直に知らないと言いなさい
840 名前: mailto:sage [2018/01/01(月) 14:27:07.60 ID:tZ/lpIQo0.net] 今年はいい年になるかなw
841 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 14:29:26.10 ID:UomJiKNZ0.net] >>814 Workbook_AddinUninstall てのは知らなかったな。 Workbook_Open するのと効果は違うんだろうか?
842 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 14:54:13.21 ID:ixsE+qrMx.net] またメゾット君が暴れてるな あの馬鹿が出入りするようになってから荒れすぎ
843 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 15:45:18.49 ID:bzNinO0Ma.net] >>817 よく考えろよ
844 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 16:11:19.12 ID:PLRWaMeF0.net] >>819 おっと、 Workbook_AddinInstallを Workbook_AddinUninstallと書き間違えた
845 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 09:36:26.90 ID:nA397GZea.net] >>820 だとしてもだ イベントの言葉の意味そのままだよ よく考えろよ
846 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 12:29:02.41 ID:MKa2S+Tjd.net] >>821 「対象のアドインを参照設定しているブックを開いた」というイベントを想定してた そうじゃないのね
847 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 10:57:08.56 ID:rhTFyGx/0.net] >>806 そんなことはない。 設定値を保存するためのiniファイルの代わりにするとか、テンプレートの代わりにするとか、使い道は沢山ある。
848 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 11:46:24.84 ID:ZpYRfYyG0.net] アドインにするにしてもなんにしても運用がしっかりされてないと意味がない ファイル名やシート名程度が保証されてないならマクロ化なんて諦めろ
849 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 11:59:35.70 ID:Uz65NhYa0.net] >>823 設定値を保存するのはやめたほうが良いと思うな。 バージョンアップしたときに設定値がリセットされてしまうとか、エクセルバグの巻き添えでブック破損の危険性がある。 できるだけアドインは読み取り専用で運用するべきだと思う。 過去に内部シートに保存するように作って問題が起きたので、バージョンアップ時にxmlにコンバートさせた事があるわ
850 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 12:49:50.09 ID:lLEkaf6s0.net] お前のバグを根拠にされてもなぁ
851 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 14:45:49.49 ID:hfgsKA7ma.net] まあ、設定は外出しにするのが普通に安全策じゃね? xlamのシートは明らかに利用してほしくないっていう思いが伝わる作りな訳だから
852 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 15:32:51.77 ID:00k1dN96d.net] 利用者が不用意にセルデータをクリアしてそのままセーブしても自覚すらしないかも
853 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 05:46:13.89 ID:UuI+tM4Q0.net] 質問よろしくお願いします。 A列,B列,C列,D列 Aa,111,bbb,20 Bb,111,aaa,30 Aa,222,bbb,10 Bb,111,aaa,10 Aa,111,bbb,15 上記の様な表を下記の様にしたいです。 A列,B列,C列,D列 Aa,111,bbb,35 Aa,222,bbb,10 Bb,111,aaa,40 A,B,C列の値が一致したらD列を加算して行を削除するという処理です。データは約1000行程です。
854 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 06:37:20.49 ID:MFccPkO20.net] 1000行程度ならSUMIFSとかでできるんじゃないの
855 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 06:55:39.59 ID:IcyEu6L/M.net] >>829 要件によるけどそういうビューを作ればいいんじゃね? create view V as ( select A列,B列,C列,sum(D列) as D列 from 表 group by A列,B列,C列 )
856 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 06:57:20.78 ID:IcyEu6L/M.net] すまん、寝ぼけててSQLスレと勘違いしてた... >>831 はなしで
857 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 07:39:39.14 ID:IGCyfMcU0.net] >>829 見るからにデータベース向けの案件 集計するキーとなる列が左端一列、その右に合計対象の数値列という2列形式なら データタブにある統合でできるんだが
858 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 08:01:11.56 ID:5mprgbRzp.net] >>830 すみません説明不足でした。 キー項目が1000種類以上あり、毎回CSVから読み込んでから処理をする為、事前にWorkSheet関数を作っておくのが難しい状況です。 何か手はありますか?
859 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 10:15:47.38 ID:fF+rBx/60.net] データベース系のデータは素直にデータベースソフトで管理しようよ・・・。 アクセスでやればマウス
860 名前:操作だけで終わる様な問題だよ。 [] [ここ壊れてます]
861 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 10:22:48.62 ID:d1LyNdol0.net] >>834 ADOでcsvファイルをデータベースとして接続して >>831 に挙げられた SELECT文を実行する、という手段がとれる
862 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 10:31:44.20 ID:no6Ylxj0a.net] sqlならselectとorder byだけですむ案件だな 愚直にプログラム組むと厄介だけどね
863 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 10:38:07.48 ID:7zx5w2nrd.net] ピボットでいいんじゃね
864 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 11:56:10.93 ID:iFN99ve4d.net] LINQって使えないんだっけ?
865 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:22:48.32 ID:Gj6t78kg0.net] >>829 嘔吐フィルターかけてソートしてから 一致を
866 名前:上からみて加算と消去 フィルター解除忘れずに(多分ソート直後にすぐ) [] [ここ壊れてます]
867 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:42:37.28 ID:hO93+Igl0.net] >>829 ↑ 上級者じゃない俺なんかこういうのみると 全部2次元配列にぶちこんでif多用して無理矢理やっちゃうんだけど そういうのはだめなの?
868 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:47:48.60 ID:cJgHrV+ta.net] >>841 だめじゃないし、初心者なら無理やりVBAで組むのも勉強になるよ 重複の無いリスト作るのがやや面倒というか、煩雑になりがちなところだな エクセルの機能使えばいいっちゃいいけど、好みじゃないな
869 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 13:55:27.88 ID:hO93+Igl0.net] >>842 おれこういうの無理矢理やっちゃうの大好きで完成すると充実感半端ない 俺が組むマクロってそんなのばかりだ 基本初心者レベルの知識しか使わないでやっちゃうんで、 こういう質問をする人は、無理矢理やると遅くなるとか別の理由があって聞いてるのかな? とか思っちゃう
870 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 15:19:59.75 ID:kPmYITG+0.net] ファーム1の中に、オプションボタンが18個あり、オブジェクト名を『OP_1』〜『OP_18』としてボタン1を押してフォーム2に切り替える時に選択されてるオプションボタンのキャプションを取得して変数TUR1に入れたいんですけどどうしたらいいですか?
871 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 16:20:08.23 ID:pGh8JphK0.net] >>844 For i = 1 To 18 With Me.Controls("OP_" & CStr(i)) If .Value = True Then TUR1 = .Caption Exit For End If End With Next
872 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 17:41:48.62 ID:uhyB+DSmd.net] 初心者なんだけど以下のような表から特定のセルに入力された場合だけ、特定のセルをカウントする方法ってありますか? Aは全て Bは選ばれたものだけ、みたいな Aの全てをカウントするのはわけないんだけど、Bの選ばれたものだけをカウントする方法がわからない IF使うにしても何を指定すればいいのでしょう? わかりにくかてすいません o.8ch.net/11r7r.png
873 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 17:54:54.38 ID:IwnGnNnba.net] >>843 普通にやり方がわからないんじゃないの >>846 cがキーになるなら重複しないcの一覧をつくって二次元配列でも構造体でもいいけどbがtrueならカウントするっていう風にすればいいと思う 件数多いならDBの領分だと思うけどね、この手の集計は
874 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 18:02:17.19 ID:HiTEnEcXd.net] >>845 ありがとうございます!
875 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 18:13:43.61 ID:uhyB+DSmd.net] >>847 Bがtrueなら、というのはどうやって指定すればいいですか? 範囲指定で
876 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 18:23:20.07 ID:uhyB+DSmd.net] すいません、間違えて書き込んでしまいました >>847 Bがtrueなら、というのはどうやって指定すればいいですか? 範囲指定でがっつりやると、指定した範囲に一つでもtrueがあるとカウントしてしまって結局全部をカウントしてしまうんです
877 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 18:27:59.94 ID:iMxAIJokM.net] >>829 何も難しく考えなくても、E列に=A&B&Cを入れて、E列を行ラベルにしてピボットテーブルで集計するだけで出来るよ。 ABC列をもどしたいならINDEX,MATCHで引っ張って来ないといけないけども、日々エクセル使ってる人なら手慣れたものだと思う。と言うか慣れておくと色々便利。 詳しい解説いるならする
878 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 18:58:58.92 ID:IwnGnNnba.net] >>850 一行ずつループしてるんだよね? フラグ用に変数用意してるなら一ループごとに初期化し直さないとだめよ ってか、今どんなコードで動かしてるか書いてくれるとやり易いんだけど
879 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 02:37:52.28 ID:Uixpo
] [ここ壊れてます]
880 名前:pG00.net mailto: フィルタとCOUNTIFで良い気がするが どうしてもVBAでやりたいのか? [] [ここ壊れてます]
881 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 17:45:28.92 ID:Kfn/8I4m0.net] HTMLソースで <a href = URL1</a> <br />**** ← 4桁の特定の数字が入る <a href = URL2>予約中</a> <a href = URL3>[取消]</a><br /><a href = URL4>[訂正]</a> 上記の4桁の数字とURL以外同様のソースが全部で10個あるページがあり、C5セルに4桁の数字を入れ、それに対応したURL3のリンクをクリックしたいのですが、どうすれば可能でしょうか? IEでそのページまで飛ぶのは問題ないのですが、aタグのインナーテキストが4桁の数字以外共通なためForとGetElementsByTagNameとの組み合わせでクリックできないので何か手段があれば教えて頂きたいです。
882 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 21:06:25.46 ID:UyFZaUswa.net] >>829 そういう処理だったらソートしても問題無さそうだからソートしてループで良いんじゃね? >>854 4桁の数字以外共通だとどうしてForとGetElementsByTagnameとの組み合わせでクリック出来ないのかが分からん。
883 名前:851 mailto:sage [2018/01/05(金) 21:25:01.57 ID:Kfn/8I4m0.net] >>855 あ、確かに。書き間違えました。下記のコードだと10個のリンクのうち、一番上にあるやつをクリックすると思うのですが、 C5セルに入力した特定の4桁の数字の下にあるリンクをクリックしたいのです。 For Each obj In objIE.Document.getElementsByTagName("a") If InStr(obj.innertext, "取消") > 0 Then obj.Click Exit For End If Next
884 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 22:16:41.06 ID:vO88ak3C0.net] DOMに親要素とか隣の要素を見ていくのあったよね あれで必要なだけ移動させればいいんじゃね
885 名前:デフォルトの名無しさん mailto:sage [2018/01/05(金) 22:20:08.87 ID:vO88ak3C0.net] >>829 を >>836 の方法で頑張ってコードにしたのを書き込みたいんだけど 403になっちゃうのよね 禁断のコードが含まれているのかしら
886 名前:デフォルトの名無しさん [2018/01/07(日) 08:20:46.08 .net] >>846 VBAを使わずにExcelの計算式で書くとこうだよね。 ・C列が「10」、B列が「○」の行を数えるなら =COUNTIFS($C$2:$C$6,10,$B$2:$B$6,"○") ・C列が「10」、B列が空以外の行を数えるなら =COUNTIF($C$2:$C$6,10)-COUNTIFS($A$2:$A$6,10,$B$2:$B$6,"") これをVBAで書きたいなら、そのままワークシート関数を呼び出せばいい。 ・C列が「10」、B列が「○」の行を数えるなら With Worksheets("Sheet1") dblCnt = WorksheetFunction.CountIfs(.Range("C2:C6"), 10, .Range("B2:B6"), "○") End With ・C列が「10」、B列が空以外の行を数えるなら With Worksheets("Sheet1") dblCnt = WorksheetFunction.CountIf(.Range("C2:C6"), 10) - WorksheetFunction.CountIfs(.Range("C2:C6"), 10, .Range("B2:B6"), "") End With 注:COUNTIFS関数はOffice 2007で追加されたので、2003とかでも動くようにするには 計算式なら配列数式を使うかダミーの結合列 (例: F列に =B2&”:”&C2)を使う必要があるし、 VBAなら自前で1行ずつループするFor文を書く必要がある。
887 名前:デフォルトの名無しさん mailto:sage [2018/01/08(月) 01:12:41.23 ID:bgHHDE53D] >>856 すごい お馬鹿な返信で申し訳ないけど イメージとしてまず、 <a href = URL1</a> <br />**** ← 4桁の特定の数字が入る <a href = URL2>予約中</a> <a href = URL3>[取消]</a><br /><a href = URL4>[訂正]</a> の部分がページ内で繰り返して複数あるなら、この部分だけを取り出す処理を繰り返して splitなりで個数を数えて 処理するとか。(取り出す位置は、InStrで取って、終わり位置を 次の開始位置にして) その上で、この部分にC5と同じ値があるならクリックするとか。 C5の値を変数aにして、InStr(取り出した部分, a) > 0で良いような。 すいません。曖昧な返信で。
888 名前:sage [2018/01/11(木) 23:28:08.34 ID:kwmxLljDv] 教えていただきたいです。 あるセルの数字に関して o以下と12以上はA 6以上12未満はB それ以外はなしという式を作るとしたら =if(or(セル<0,セル>=12),"A",if(6<セル=<12,"B"," ")) という式ではちゃんと返ってきません。 正しい式をご教授願います。
889 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 12:40:04.91 ID:eKl5cJvJd.net] コンボboxを使ってサジェスト機能みたいなことをしたくて作ってみたんだけど、1文字目はうまくいくんだけど2文字目以降打つとリストの一番上が乗ってきて使い心地が良くないんだけど、どうしたらいいですか? コンボboxのリストのみをクリアするやり方もいまいちわかりません。 j=2 Tname.rist=array() set MstSht=worksheets(″マスター″) str_word=controls(″Tname″&j).value for i=2toMstSht.cells(rows.count,6).end(xlup).row if instr(ucase(MstSht.cells(i,6).value),ucase(str_word))=1 then controls(″Tname″&j).additem MstSht.cells(i,6).value end if next
890 名前:デフォルトの名無しさん mailto:sage [2018/01/11(木) 19:23:41.06 ID:WJjCr32Q0.net] エクセルの2003ですが、 並べて比較を使用した際にペアになっているブックと、 そのブックで表示されているシートを取得するには どのように記述すればいいでしょうか。
891 名前:デフォルトの名無しさん [2018/01/11(木) 21:16:23.66 ID:JbTpKTF6M.net] >>863 何を言っているのでしょうか?
892 名前:デフォルトの名無しさん [2018/01/11(木) 21:25:37.65 ID:a2sLbYI50.net] 世界教師マイトLーヤ「大暴落は日本からスタート」 rio2016.5ch.net/test/read.cgi/2chse/1512813686/l50 【マイトLーヤ】 米国債を売れ 【1200兆円】 https://medaka.5ch.net/test/read.cgi/eco/1515587891/l50
893 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 01:30:55.27 ID:GWvM9lig0.net] >>863 Excel2003はサポート切れてますので Excel2007にのりかえましょう
894 名前:デフォルトの名無しさん [2018/01/12(金) 01:41:04.62 .net] >>866 Excel2007なら>>863 できるん?(´・ω・`)
895 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 15:56:41.55 ID:kdQVxAch0.net] 0回目って何?
896 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 19:59:42.26 ID:8L8z7qJh0.net] vbModelessで開いたUserForm上のTextBoxにSetFocusするようInitializeに記述しても効きません これって無理なんですかね? vbModelessを切るとフォーカスがちゃんとTextBoxに移るんですけどね
897 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 23:20:03.95 ID:Ln5WwMFr0.net] 初期状態でフォーカスを当てたいなら UserForm.Show vbModeless UserForm.TextBox.SetFocus とフォームを呼んでいるプロシージャ側に書く フォームのイベントならActivateでどうでしょう 毎回フォームがアクティブになるたびフォーカスしちゃうけど Initializeがなぜはしらないのかは知らない
898 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 23:44:10.99 ID:Ln5WwMFr0.net] 実験してみたらInitializeは呼ばれてるけど SetFocusだけがだめみたい 他のことは普通にできる なんでしょうね
899 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 23:46:18.93 ID:WKndAwKhM.net] いやExsel 2007もサポート切れてますが
900 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 03:26:50.74 ID:0Hr8k8ED0.net] >>871 自分でもいろいろやってみたんですけどやっぱりダメみたいですね ありがとうございました
901 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 09:26:06.50 ID:60QkmGs40.net] 試してないけど、プロパティのTabIndexも駄目だったの?
902 名前:デフォルトの名無しさん [2018/01/13(土) 10:05:22.76 ID:8yN0Kzpj0.net] ThisWorkbook.Application.Hwndでブックのハンドルを取得して、 SetLayeredWindowAttributesで透過処理をする時、 LWA_ALPHAでは問題ないのに、 LWA_COLORKEYに変えると、なぜかブック全体ではなく、 シート上に最初に配置したコマンドボタンの方に誤爆します。 しかも、自分のPCでは問題ないのに、他人のPCだと誤爆するという意味不明さ。 ハンドルがずれる的なバグでもあるのでしょうか?
903 名前:デフォルトの名無しさん [2018/01/13(土) 10:12:39.30 .net] ウィンドウ表示時にフォーカス当てたいんならTabIndex=0にすればいいんだと思うけど、 あとはフラグを使ってInitialize直後のActivateイベントでフォーカスを当てればいいんじゃね? Private mblnInitFlag As Boolean Private Sub UserForm_Activate() If mblnInitFlag Then TextBox2.SetFocus mblnInitFlag = False End If End Sub Private Sub UserForm_Initialize() mblnInitFlag = True End Sub