1 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:24:32.62 ID:I0u44nFvd.net] !extend:checked:vvvvv:1000:512 !extend:checked:vvvvv:1000:512 ↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ ExcelのVBAに関する質問スレナリ コード書き込みや作成依頼もOKナリ ※前スレ Excel VBA 質問スレ Part74 https://mevius.5ch.net/test/read.cgi/tech/1639932059/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
191 名前:デフォルトの名無しさん [2022/02/24(木) 20:31:45.10 ID:exGzm3wL0.net] >>185 スレタイ読め 消えろ
192 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 20:51:03.24 ID:N8+11+jZ0.net] うーわ! 余裕無えー よっぽどストレス溜まってんだなあ 追い詰められてんだろうなあ、社内で
193 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 21:02:21.44 ID:K0Kp1JdiM.net] >>186 おおおー!文字列になってるんですね、なるほど!明日会社でやってみます! ご親切に教えていただきありがとうございました。 このスレの方すみませんでした。ありがとうございましたm(_ _)m
194 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 21:22:25.12 ID:OIkOwNi30.net] >>187 おまえなんか話題振れよ
195 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 22:13:31.53 ID:Nlim82gmM.net] さっき電車の中で向かいに若い女性の二人組が座っててさあ
196 名前:デフォルトの名無しさん mailto:sage [2022/02/24(木) 23:52:39.32 ID:CvXfU24U0.net] >>188 リアルすぎて草
197 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 03:22:55.08 ID:hDgiDFze0.net] それで2人の会話を盗み聞きしたらさー 「職場にExcelマニアいるけどキッショいよねーwww」って言っていたよ〜
198 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 14:17:15.60 ID:QcxlogpXM.net] そして、Excelマニアが退職したあと、Excelが壊れたとマニアに鬼電するまでがテンプレ
199 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 17:06:35.52 ID:vXWN6Ngg0.net] Excelマニアってなんぞ
200 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 21:30:18.25 ID:Wier9kYf0.net] 関数式でif文書くだけでExcel詳しい人扱いされる国
201 名前:デフォルトの名無しさん [2022/02/25(金) 22:44:14.64 ID:DoxyywZF0.net] シートに写真をおいて,そこにマクロを登録するのですが, クリックしている間は処理を継続させるようにするにはどうしたら良いでしょうか?
202 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 22:51:14.84 ID:a/ksSb5+0.net] アルミ箔とリード線使うといいんじゃないか?
203 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 23:08:55.89 ID:sygyzO5g0.net] イベント時で MouseOver とかか クリックし続けって無かったような MouseMove だっけ なんかその辺
204 名前:デフォルトの名無しさん mailto:sage [2022/02/25(金) 23:33:04.48 ID:O9IDWaUh0.net] Excelはマニアで済むけれど Rubyなんて宗教だもんな
205 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 00:20:17.83 ID:SY5M7+S/a.net] 単なるあだ名だろw
206 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 03:20:22.62 ID:T7kJgkW90.net] お前はカルメンか
207 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 07:13:12.65 ID:S41FQOKr0.net] >>200 rubyが宗教って言われるのはrubyの製作者が熱心なクリスチャンだからだよ まさかガチの狂信者が出てくるとは思わなかったが・・・w
208 名前:デフォルトの名無しさん [2022/02/26(土) 10:24:59.15 ID:jtqt4mXJ0.net] >>199 ありがとうございます!
209 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 18:17:50.12 ID:duMrqy+m0.net] Excelマニアとデータ分析マニアは違うみたいね
210 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 18:30:22.44 ID:ZAxvZ+Mc0.net] >>205 「分析」が「統計」だとすると、 最終的に中間処理やアウトプットはExcelでなくてRなんかに行っちゃうかも。 Excelは統計関係の関数がアレだし。
211 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 19:53:05.77 ID:duMrqy+m0.net] それでも昔からみんなExcelで無理してきた感
212 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 20:05:05.05 ID:JqjjL3aFa.net] そこでPython
213 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 20:10:28.10 ID:bGmpH7iw0.net] 言語ならRやPython パッケージならSPSSやSAS
214 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 20:19:26.32 ID:S41FQOKr0.net] 今思えば256列の60000行でよくやってこれたなと思う
215 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 20:43:17.30 ID:joT9B4PU0.net] 今でも256列や60,000行を超える処理ならDBMSにするわ
216 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 21:51:16.00 ID:ZAxvZ+Mc0.net] ワークシートに読込ませず、 Power Queryの「接続」(他所からクエリー)だけにしておくと 行数最大:1,048,576行 列数最大:16,384列 まで扱えるみたいだけど、なんか別の入れ物は必要・・・ Accessを入れ物にしようとすると テーブルはフィールド数最大255、 行数はファイル全体で2GBまでということか。
217 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 22:05:30.45 ID:8Bo34rLG0.net] Pythonは途中から 数学で出てくる数式が分からないとキツくなるからちょっと保留してRust
218 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 22:10:39.56 ID:duMrqy+m0.net] 理系向きなのね?
219 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 22:16:53.94 ID:ZAxvZ+Mc0.net] 営業でも重回帰分析だの相関係数だのやってるところもあるから・・・ 統計に使う数学は もはや文系/理系に関係ない時代の模様
220 名前:デフォルトの名無しさん [2022/02/26(土) 22:23:53.97 ID:XZXEjFci0.net] ID:ZAxvZ+Mc0 また知ったか馬鹿か
221 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 22:31:17.36 ID:e5W/1zqv0.net] 平均とグラフが作れればうちの所は余裕だ…
222 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 22:35:46.73 ID:ZAxvZ+Mc0.net] >>216 知ったか? そうかね? デカいデータを四則演算だけで済ませられるのは 財務会計くらいやん。
223 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 23:12:20.49 ID:S41FQOKr0.net] ダントツで扱い易いのは偏差値かな 相対的な指標としては良く使う
224 名前:デフォルトの名無しさん mailto:sage [2022/02/26(土) 23:12:53.14 ID:S41FQOKr0.net] って営業は作らんやろ さすがにそこは営業事務が作ってあげると思う
225 名前:デフォルトの名無しさん [2022/02/26(土) 23:51:35.28 ID:XZXEjFci0.net] >>218 言い訳すればするほど馬鹿さらけ出し
226 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 00:09:08.97 ID:XQfZTF0E0.net] うちの営業はExcelの使い方すら知らん Excelなんて使わないよなー、Wordの方が使うわって会話聞いて戦慄した
227 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 03:40:18.89 ID:vE3gjDOr0.net] Executeexcel4macroでwindowsapiを使う場合、 戻りがオブジェクトだったらどうするの?
228 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 03:54:20.37 ID:eD286Vb90.net] 祈る
229 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 06:03:46.97 ID:So6tXBwD0.net] >>223 どうするもこうするも、setして使うしかないじゃろ 以下だってsheets関数に引数1入れて、sheetオブジェクトが返ってきてるわけだし、同じです Set ws = Sheets(1)
230 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 06:07:27.75 ID:a0+qdDh70.net] >>223 おまえが作ったコードは見たくないな
231 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 06:10:51.70 ID:So6tXBwD0.net] >>226 まぁまぁ・・・ setは最初はとっつきにくいので・・・
232 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 07:03:43.76 ID:vE3gjDOr0.net] そうじゃなくて2JNとか指定するやつ。 オブジェクトが無くて絶望的なんだけど。
233 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 07:22:28.14 ID:So6tXBwD0.net] >>228 あぁHWNDとかの奴か。ごめん、これは昔諦めた。他の人お願い。 やりたいことを先に書けば、それっぽいコード書いてくれる人がでてくるかも
234 名前:デフォルトの名無しさん [2022/02/27(日) 11:02:51.91 ID:F9ScTckVM.net] すみません。 半日つぶしてもできない。ダメ男です なんとか協力してもらえませんか? 単純に「特定文字」のある行を削除したい(その行をその下の行の二行削除したい) 'まず、獲得ポイントを削除 Dim row_po As Long row_po = Range("A14:D150").Find("[ 獲得ポイント ]").Row Range(Rows(row_po), Rows(row_po + 1)).Delete この書き方でとりあえず消えるのですが、[ 獲得ポイント ]が無かった時にエラーになり止まってしまいます。 で、スルーしてほしいのですが、なにをやってもスルーしてもらえません。 なにもしないことがこんなに難しいとは思いませんでした。 ほっといて欲しいだけなのに どうするとアホでもわかりますかね?
235 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 11:09:42.41 ID:amhd0I0YM.net] On Error Resume Nextを頭に入れるだけ
236 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 11:27:49.32 ID:So6tXBwD0.net] >>230 Sub foo() '先に見つけておく Set p = Range("A14:D150").Find("獲得ポイント") If Not (p Is Nothing) Then '見つかったときの処理 row_po = p.Row Rows(row_po & ":" & row_po + 1).Delete Shift:=xlUp Else 'ここに見つからんかったときの処理 MsgBox "見つからんかった" End If End Sub >231 それやると今度はrow_po でエラーが起きる可能性絶大
237 名前:デフォルトの名無しさん [2022/02/27(日) 11:30:41.33 ID:F9ScTckVM.net] >>231 おおお神よ なぜあなたは神なのか 私は知恵熱っぽくまでなったのに ちなみに検索するとエラーが全部キャンセルされるみたいなんですが、一応範囲を決めるとして 'まず、獲得ポイントを削除 On Error Resume Next Dim row_po As Long row_po = Range("A14:D150").Find("[ 獲得ポイント ]").Row Range(Rows(row_po), Rows(row_po + 1)).Delete On Error GoTo 0 で大丈夫な感じですか 動作はしました。(他の命令のエラーはちゃんと出るかな?と)
238 名前:デフォルトの名無しさん [2022/02/27(日) 11:31:51.84 ID:F9ScTckVM.net] >>232 あれ? まじですか ちょっとわからない ちなみにMsgBox を出したくないんです。 そのままスルーしてほしいのです
239 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 11:40:19.04 ID:So6tXBwD0.net] >>233 onerrorはなるだけ使わない方が良いと思う。俺は使わずに書いてるよ >>233 でもいいけど、なるだけ少ない方が後々の変更が楽になる Sub foo() '先に見つけておく Set p = Range("A14:D150").Find("獲得ポイント") If Not (p Is Nothing) Then '見つかったときの処理 row_po = p.Row Rows(row_po & ":" & row_po + 1).Delete Shift:=xlUp End If End Sub
240 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 11:42:39.74 ID:amhd0I0YM.net] >>234 動いたんならまず一旦良しとしていいと思う 良いやり方が他にもあるから今後更に知識が付いたその時に改良していけば良いさ
241 名前:デフォルトの名無しさん [2022/02/27(日) 11:53:19.82 ID:F9ScTckVM.net] どうもありがとう ただ、なんかわからないのだが、ほかの所がエラー吐いてしまっています。 ちょっと死にそうですが、悩んでみます。 多分、また来ますw
242 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 12:19:45.80 ID:So6tXBwD0.net] どうぞ〜がんばって〜
243 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 14:32:58.22 ID:F9ScTckVM.net] >>235 おま、これすごい これにしてみたら他に出たエラーもピシっと消えた On Error は動いたけど、イレギュラーなパターンだとなぜか他でエラーになった これも試したらイレギュラーでもバッチり つーか、俺が昨日の夜中からずううとやっていてもこんなの作れないありがとう ホント君らすげーよ これ作るのに寿命を迎えるレベルだわ
244 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 14:49:32.88 ID:So6tXBwD0.net] >>239 笑った 影響が最小限になるように、ちゃんと書く方が楽なんだよ onerrorとかですっ飛ばすと、後で余計に大変になる
245 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 17:57:55.85 ID:JWEArlQD0.net] 関数て約500種類弱あるけど、全部マスターする必要あるのかな?? 知人が、「Excelができる人材の定義は関数を全部マスターしているヤツの事だ!」とか言い出しているから
246 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:04:55.19 ID:ZPGXXCGc0.net] VBAなら関数って自作が基本じゃないの?知らんけど
247 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:06:25.05 ID:So6tXBwD0.net] >>241 >関数て約500種類弱あるけど、全部マスターする必要あるのかな?? ないよ
248 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:28:40.28 ID:CUu39Gd8M.net] https://forest.watch.impress.co.jp/docs/news/1293471.html
249 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:34:38.78 ID:a0+qdDh70.net] そら作れば無限に出来るわいな
250 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:39:37.90 ID:tDC5899T0.net] >>241 EXCELが(凄く)できる人かEXCELが(初心者だけど)できる人では違うんじゃね
251 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:47:42.24 ID:NFpbXNxz0.net] >>241 その知人に認めたくない人がいてExcelできる人で通ってるけど 関数はマスターしてないから言ってるだけ説
252 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:50:42.59 ID:AJPusFVK0.net] 知ってる関数の数なんて誇る奴がいたら失笑もんだわ
253 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:55:10.53 ID:a0+qdDh70.net] 標準の関数は少ないよな 俺はSUM CONCATENATE IFくらいしか覚えてない(ヘルプが必要)がその知人よりは多分出来ると思う
254 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 18:58:34.59 ID:WwuIS/YcM.net] >>247 多分合ってるんだろうけどメッチャ理解し難いぐちゃぐちゃ関数式の様な日本語
255 名前:デフォルトの名無しさん [2022/02/27(日) 19:18:55.52 ID:Jrkr8SKF0.net] >>241 その知人が馬鹿なだけだぞ
256 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 19:50:11.71 ID:So6tXBwD0.net] 知人ぼろかすで草
257 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 19:54:03.00 ID:XX45AiX5d.net] Excelにどんな機能がある=関数 ってしかいえない人の戯言では
258 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 20:40:55.89 ID:D3HmGJ+n0.net] >>241 If 友人が「Excelができる人材の定義は関数を全部マスターしているヤツの事だ!」と言った then throw 友人 どこか End If 以下正常処理
259 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 20:51:03.99 ID:nGlHhzSe0.net] If 友人が Then Yo! Yo! チェケラYO! Go To YoYo End If YoYo: Oh! Oh! 皆で楽しくチェケラYo!
260 名前:デフォルトの名無しさん [2022/02/27(日) 21:11:45.66 ID:JrRqc3Naa.net] If 友人.Count > 0 Then のチェックをしておかないと例外が発生しかねんぞ
261 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:18:59.32 ID:f8g0XzTm0.net] >>254 そこはRaiseだろ
262 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:27:51.88 ID:So6tXBwD0.net] ?友人 is nothing true
263 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:34:07.20 ID:nGlHhzSe0.net] 確認事項 ・友人はいますか ・親友はいますか ・彼女はいますか ・配偶者はいますか ・家族はいますか ・老後の心配はありませんか
264 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:42:34.72 ID:NFpbXNxz0.net] >>250 知人A, 知人が認めたくない人B Bは皆にできる人って思われてる Aはそれが気に食わない だから関数をマスターしていない事を理由に言ってるだけ説 ごめん頼んだ
265 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:46:20.69 ID:pkdB1ort0.net] 人生の大抵の困難はon erorr resume nextで解決可能である
266 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 21:52:09.54 ID:nGlHhzSe0.net] On Error Shutdown And Reboot With Next Life
267 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 22:13:39.17 ID:amhd0I0YM.net] >>262 例外処理が抜けてる If You = カーズ Then Do Until 地球からの距離 = 0 地球からの距離 = 地球からの距離 + 1 Loop Elseif You = ディアブロ Then 死ぬ前: 死にそう Goto:死ぬ前 死んだ End if
268 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 22:37:19.46 ID:oWne56vR0.net] Dim tmp As String tmp = "どんまい" MsgBox tmp
269 名前:デフォルトの名無しさん mailto:sage [2022/02/27(日) 23:16:15.15 ID:JWEArlQD0.net] 関数そこまで必要かな? マクロできるなら全部マクロでやれば良いじゃんね
270 名前:デフォルトの名無しさん [2022/02/27(日) 23:42:12.81 ID:Jrkr8SKF0.net] >>265 類は友を呼ぶ お前もどうしようもない馬鹿だ
271 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 03:06:37.96 ID:kykjWS4h0.net] いやだなぁ〜先輩、冗談すよ冗談 職場になんでもVBA、VBAといってマジでVBAで片付けていた偉い人がいたもんでw
272 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 08:14:19.86 ID:9UyyIrQV0.net] 知人が、偉い人が、全て他人の話 ほんとうは・・・?
273 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 08:33:28.33 ID:o5ZgQ4pV0.net] >>268 これ以上はやめて差し上げろ
274 名前:デフォルトの名無しさん [2022/02/28(月) 18:59:30.44 ID:h1aqAX/2M.net] すいません。 こういうのはできますか? セルの中に改行を見つけてから止める(修正)するVBAをつくりました。 改行が見つかったら、マクロを止めて手修正をして又マクロを走らせてを繰り返します。 ここで、問題なのが改行ならいいのですが、文字が多くて折り返しになっているのがたまにあります。 それも見つけたいのですが、知恵がみつかりません。 折り返し判定みたいなのはあまりなさそうです。 それとも行の高さを判定できるなら高さ22以上とか方法があるのかな?と すいませんが、こんなのは?ってありましたら、お願いします。 Sub test() Dim Ws As Worksheet For Each Ws In Worksheets Ws.Activate Dim row_shou As Long row_shou = Range("A14:D150").Find("小 計").Row Dim Target As Range Set Target = Range(Rows(14), Rows(row_shou - 1)).Find(What:=vbLf) If Not Target Is Nothing Then End End If Next Ws End Sub
275 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 19:29:28.20 ID:o5ZgQ4pV0.net] >>270 一行以外を全て検出したいなら、行の高さを検出するだけで終わると思う 改行は調べなくてもいいような Sub foo() 最終行 = Cells(Rows.Count, 1).End(xlUp).Row 基本の行の高さ = Cells(1, 1).RowHeight For i = 1 To 最終行 If Cells(i, 1).RowHeight <> 基本の行の高さ Then MsgBox i & "行目の高さがおかしいので、終了します。修正お願いします" Exit Sub End If Next End Sub
276 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 20:20:02.79 ID:h1aqAX/2M.net] >>271 あ、あ、ありがとう 正直解読するのに一時間くらいかかって自分のに書き直せました。 一応動いていけそうです! 高さチェックでいけますね こんなチンケな感じになりました。 神々に感謝します。 Sub test() Dim Ws As Worksheet For Each Ws In Worksheets Ws.Activate Dim row_shou As Long row_shou = Range("A14:D150").Find("小 計").Row '行の高さ15以上を検索 h = 15 For i = 14 To row_shou - 1 If Cells(i, 1).RowHeight > h Then Exit Sub End If Next Next Ws End Sub
277 名前:デフォルトの名無しさん mailto:sage [2022/02/28(月) 21:56:13.38 ID:1x7bPtTEd.net] ぶっちゃけFindは滅多やたら使わん方が良いけどまあ良かったじゃん
278 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 18:55:07.17 ID:gFYHZAxx0.net] なんでもスレだと更新が少なく答えがもらえなさそうなので、こちらにも書き込んですみません。 Excel VBAで質問です。 現在開いているシートにマクロボタンを作り、実行させると… 現在シートのB列に検索値 別のシート(ABC)のB列の5行目〜400行目までを検索して一致したセル番号が欲しいのですが For cnt=1 To 10 samsu(cnt)=WorksheetFunction.Match(Cells(cnt,1),Worksheets(”ABC”).Range(Cells(5,1),Cells(400,1)),0) … next このMatch関数の正しい書き方を教えてもらいたいのですが。
279 名前:デフォルトの名無しさん mailto:sage [2022/03/01(火) 22:29:13.54 ID:Nv0Sds8Bd.net] ちゃんと見ていないが、とりあえず.cellsの前にも全部ワークシートを指定しよう
280 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 07:23:43.88 ID:bacADaAbd.net] どっちでも好きな方をどうぞ samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range(Worksheets("ABC").Cells(5, 2), Worksheets("ABC").Cells(400, 2)), 0) samsu(cnt) = WorksheetFunction.Match(Cells(cnt, 1), Worksheets("ABC").Range("B5:B400"), 0)
281 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 18:02:30.94 ID:Dpz5qFA70.net] 質問です 社員毎に月々の残業時間の合計プログラムを作っています 合計した数値に対して、30分で切り上げ切り捨てしています(会社の残業規定に則り) (例えば、月4:10の残業であれば4:00として出力、月4:35であるば5:00として出力) 合計した数値に対してFloor関数を使って切り上げ切り捨てをしているのですが、 月23:30の残業をした社員がいた場合、出力された値が0になってしまいます 表示形式を[h]にしてみましたが、結果は変わりません デバックでFloor関数の中の変数の値を確認しましたら、23:30のシリアル値はきちんと入っています そうするとFloor関数で切り上げしているのが原因なのでしょうか? どなたかご教示いただきたいです…
282 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 18:09:09.52 ID:Dpz5qFA70.net] 簡潔ですが、以下のようなコードで書いています .cells(1,1).NumberFormatLocal = "[h]" a = "23:30" .cells(1,1) = Application.Floor(a + TimeValue("0:30"),TimeValue("1:00"))
283 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 18:13:22.97 ID:ydQ1ic0a0.net] >>277 mroundで1:00単位でいいんじゃない https://i.imgur.com/igLdP9C.png >>278 24と表示されたよ。そのままだとエラーになるので、2行目はtimevalueにいれた https://i.imgur.com/a54wsnQ.png
284 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 18:43:03.81 ID:Dpz5qFA70.net] >>279 MRoundにしてみたらできました! ありがとうございます! TimeValueについて書き損じ失礼しました 本来は"23:30"ではなく変数が入っていて、変数には23:30のシリアル値が入っています なぜ0になってしまうのか謎ですが解決してよかったです
285 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:19:22.93 ID:n7HPCvTSa.net] 23時の次は24時ではなく0時だからだわな
286 名前:デフォルトの名無しさん mailto:sage [2022/03/02(水) 19:25:50.55 ID:ydQ1ic0a0.net] >>281 いや、書式設定が[h]なら24と表示されるはず
287 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 07:42:09.33 ID:LvEeINitr.net] >>276 無事に動きました。 ありがとうございました。
288 名前:デフォルトの名無しさん [2022/03/03(木) 13:47:21.71 ID:KJVc8U50M.net] 質問をさせていただきます。 理解ができないことがあります。 まず、加工BOOK と マクロ保存BOOK の二種類を使用しています。 加工BOOKにある複数のシートを連続して加工するときにネット情報で下記書き方を拾いました。 Dim Ws As Worksheet For Each Ws In Worksheets Ws.Activate 〜色々な動作〜 Next Ws この「色々な動作」の中で ThisWorkbook.Activate ’マクロ保存BOOKをアクティブ(シート指定セル指定してコピーを取ってます) その後、Ws.Activate と書き 上記保存した文字を指定したセルにペースト これは問題なくペーストできています。 ただ、なぜうまくペーストできるのか理解ができていません。 理由はではこれをシート毎に連続ではなく一枚だけペーストにした場合 最初の For Each Ws In Worksheets と Next Ws を削除すればいいか?と思いやってみたのですが、エラーしか出ません。 てっきりWSという関数に加工BOOKの場所データが格納されていてWs.Activateを書けば加工BOOKに戻ってきていると思ったのですが、エラーとなると違っていたのか?と理解ができなくなりました。 加工BOOKのBOOK名とかが書ければいいのでしょう
289 名前:ェ、BOOK名(ファイル名)は不特定でやりたい。他人に渡すので環境が読めない。 最初にアクティブになっていたブックシート情報を関数に入れておけばよいと想像しているのですが、どうすればいいかとかわかっていません。 グダグダな質問でわかりにくいと思いますが、二つのBOOKを行き来して片方はマクロを作動させた時にアクティブだったシートって条件にしたいのです。 [] [ここ壊れてます]
290 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 14:00:06.45 ID:rCo9Fm7Z0.net] AvtIVeやらしてる時点で作者も大した事なさそう
291 名前:デフォルトの名無しさん mailto:sage [2022/03/03(木) 14:13:34.66 ID:9O05M6/x0.net] >>284 For Each Ws In Worksheets Ws.Activate 〜色々な動作〜 Next Ws ↓ sheets("ワークシート名").Activate WSをWorksheet("ワークシート名") に変える あと、Ws.Activateはなるべくやめたほうがいい PCが重くてアクティブなシートやブックが変わると、大惨事になる可能性がある 本当にやるならopenなどで対象ファイルを開き、戻り値をsetするのが理想 >>285 ??