[過去ログ]
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1432173164/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
659: デフォルトの名無しさん [sage] 2018/11/16(金) 06:18:18.01 ID:biDBAQdb >>658 ありがとうございます 試してみたいと思います http://mevius.5ch.net/test/read.cgi/tech/1432173164/659
660: デフォルトの名無しさん [sage] 2018/11/16(金) 06:57:12.53 ID:fQoG7lNZ そもそも657では最大値求められないだろ。 なぜ他の2つと比較してから決めないのか http://mevius.5ch.net/test/read.cgi/tech/1432173164/660
661: デフォルトの名無しさん [sage] 2018/11/16(金) 07:24:20.18 ID:biDBAQdb すいません、まだ初心者でまだ理解が追いついていなくて とりあえず最大値求めるにはこういう形...とかで覚えようとしてて....頑張ります http://mevius.5ch.net/test/read.cgi/tech/1432173164/661
662: デフォルトの名無しさん [sage] 2018/11/16(金) 07:30:47.41 ID:1oL4uemZ 658でも最大値は求められない 試しに a = 1 b = 2 c = 3 で試してみるといい。Maxが2になってしまう Ifだけでやる場合の正解の一例 Max = a If b > Max Then Max = b If c > Max Then Max = c http://mevius.5ch.net/test/read.cgi/tech/1432173164/662
663: デフォルトの名無しさん [sage] 2018/11/16(金) 07:35:16.96 ID:1oL4uemZ >>661 If Elseの構文は、最初のIfの条件が成立したらElse以降は処理されずEnd Ifまで飛ばされる つまり、 a = 1 b = 2 c = 3 だった場合、 b > Maxが成立したらc > Maxの部分は飛ばされてしまうからMaxは2のまま終わってしまう http://mevius.5ch.net/test/read.cgi/tech/1432173164/663
664: デフォルトの名無しさん [sage] 2018/11/16(金) 07:44:30.26 ID:fQoG7lNZ elseやelseifは先行条件でTrueにならない場合にしか実施されない仕組みなことを理解しましょう http://mevius.5ch.net/test/read.cgi/tech/1432173164/664
665: デフォルトの名無しさん [sage] 2018/11/16(金) 08:11:14.61 ID:nU0jfNiC >>661 このレベルを形で覚えようとしている貴方にプログラミングは向いてない http://mevius.5ch.net/test/read.cgi/tech/1432173164/665
666: デフォルトの名無しさん [sage] 2018/11/16(金) 09:26:27.62 ID:RKO+v0zL ID変ったかも知れませんが>>656です 皆さんありがとうございます >>665 手痛いレスですが、出来るところまで頑張ろうと思います。プログラマーではないですが基本は覚えないと連携し辛い位置の役職のため頑張ります。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/666
667: デフォルトの名無しさん [sage] 2018/11/16(金) 09:39:56.01 ID:fQoG7lNZ 本当のプログラミング初学者なら仕方ない。制御構文なんてどの言語も似てるので、1つ覚えれば次は勘が効くようになるよ、長い目でがんばりなされ http://mevius.5ch.net/test/read.cgi/tech/1432173164/667
668: デフォルトの名無しさん [sage] 2018/11/17(土) 01:11:45.44 ID:A0ACnair 最大値を求めたいならWorkSheetFunction.MAX使えば良いんじゃね? http://mevius.5ch.net/test/read.cgi/tech/1432173164/668
669: デフォルトの名無しさん [sage] 2018/11/17(土) 12:08:31.57 ID:vo1go4s2 自民党ですらエクセル操作ミスるくらいだからな http://mevius.5ch.net/test/read.cgi/tech/1432173164/669
670: デフォルトの名無しさん [sage] 2018/11/17(土) 12:09:52.07 ID:vo1go4s2 税金の計算もおかしくね?って思う http://mevius.5ch.net/test/read.cgi/tech/1432173164/670
671: デフォルトの名無しさん [] 2018/12/16(日) 00:58:32.35 ID:SwJ6GlUb >>668 わにわに http://mevius.5ch.net/test/read.cgi/tech/1432173164/671
672: デフォルトの名無しさん [] 2018/12/16(日) 01:01:16.65 ID:SwJ6GlUb パニックを、5人がかりでやれば楽勝だろ、とか言ってるようなもの。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/672
673: デフォルトの名無しさん [sage] 2018/12/17(月) 09:39:23.91 ID:5sE/cfMN エクセルVBAじゃなかったらどうするの http://mevius.5ch.net/test/read.cgi/tech/1432173164/673
674: デフォルトの名無しさん [sage] 2018/12/18(火) 22:55:12.06 ID:A6rQVaax 確かに。 エクセロかも知れないもんな。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/674
675: デフォルトの名無しさん [] 2018/12/26(水) 21:53:30.63 ID:KrpjpPkw VBA初心者です。少し長くなってしまいますが質問です。 ・やりたいこと 1:現マクロ有効ブックのsheet1にフォームボタン設置する。 2:押すとC:\Users\Public\動物まとめ.xlsx をバックグラウンドで開き、その中のシート名"カピバラ情報"の E列4行目から5行目6行目...と、空白が来るまでの情報を取得しする。 3:現マクロ有効ブックに新しくsheet2を作り、その新シートのA1からA2A3...に取得した情報を書き込む。 現在のマクロは下記ですが上手くいかないです。 Option Explicit Sub practice() Dim i As Long i = 4 Dim fullPass As String 'セルのB3に C:\Users\Public\動物まとめ.xlsxと記述 fullPass = Range("B3") Dim wb As Workbook Dim Anothersheet As Worksheet Workbooks.Open fullPass Set Anothersheet = wb.Worksheets("カピバラ情報") Sheets.Add After:=ActiveSheet Range("A1").Select Do While Cells(5, i).Value <> "" i = i + 1 Loop Call wb.Close End Sub 上手く情報を取得できないのでアドバイスお願いします。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/675
676: デフォルトの名無しさん [sage] 2018/12/27(木) 00:53:04.14 ID:coxr7jtk >>675 wbに何も代入されてない。 AnotherSheetへの代入もこけるはず。 AnotherSheetが正しく生成されたとしても、その後使用されていないから何かとってこれるはずがない。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/676
677: デフォルトの名無しさん [sage] 2018/12/27(木) 00:55:19.50 ID:coxr7jtk >>675 fullpass じゃなくて、fullpath ね。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/677
678: デフォルトの名無しさん [sage] 2018/12/27(木) 01:02:39.75 ID:coxr7jtk >>675 行列指定が逆? 5行目を右方向に評価してくような感じになってるけど、新規に作ったシートが対象になってるから、一周もループしてないよね? http://mevius.5ch.net/test/read.cgi/tech/1432173164/678
679: デフォルトの名無しさん [sage] 2018/12/27(木) 01:09:08.59 ID:coxr7jtk >>675 Cell値を取るときは、デフォルトにまかせずちゃんとプロパティ指定しよう。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/679
680: デフォルトの名無しさん [sage] 2018/12/27(木) 01:16:51.54 ID:coxr7jtk >>675 バックで開いたつもりのブックに新規シート作っちゃってない? ブックのフォーカスを制御するとか必要かも。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/680
681: デフォルトの名無しさん [sage] 2018/12/27(木) 09:18:35.23 ID:psUgzr4+ ID変わりましたが>>675です。 >>676‐>>680 遅い時間帯でありながら見てくださって ありがとうございます。 色々と不十分だったのですね。 指摘箇所を直したりして また報告しようと思います。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/681
682: デフォルトの名無しさん [sage] 2018/12/27(木) 09:19:34.30 ID:lhYnw8ev >>675 最初に注意すべきなのは、いきなりRangeやCellsは絶対に使うべきじゃないってこと。 ちゃんと省略せずにWorkbookやWorksheetから書くようにする。 しかしそれだとコ―ドが長くなるのでそのために今回のコードのように変数で受けるかWith文を使う。 以下はスマホ上で書いてるんで動くかは不明です。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/682
683: デフォルトの名無しさん [sage] 2018/12/27(木) 09:20:24.73 ID:lhYnw8ev Option Explicit Sub practice() Dim i As Long Dim fullPath As String Dim wb As Workbook 'Anothersheetじゃ分かりにくいんでopnShtに変更。 Dim opnSht As Worksheet '追加シートは変数に受けないの? Dim addSht As Worksheet 'セルのB3てどこ? '多分ボタンのあるシートかなと推測。 fullPass = Thisworkbook.Worksheets("Sheet1").Range("B3").Value 'B3に出鱈目書いて動かしたらどうなるんだろう? Set wb = Workbooks.Open(fullPath) Set opnSht = wb.Worksheets("カピバラ情報") With Thisworkbook Set addSht = .WorkSheets.Add( After:=.WorkSheets("Sheet1")) End With 'Range("A1").Selectって何の為に有るの? 'iの初期値を一番最初に書いてたけど、初めて見たとき何だか分からんかった。 '使う直前に関連処理と一緒にまとめた方が分かり易いよね。 i=4 Do While opnSht.Cells(5, i).Value <> "" i = i + 1 Loop '元のCall wb.Closeなどという書き方をしたことが無いのでいつもの自分の書き方に変更。 wb.Close False End Sub http://mevius.5ch.net/test/read.cgi/tech/1432173164/683
684: デフォルトの名無しさん [sage] 2018/12/27(木) 09:22:53.65 ID:lhYnw8ev >>680 フォーカスを制御すべきじゃない。 いきなりRangeやCellsを使うから上手くいかないのであって、きちんとブックやシートから書けばフォーカスを制御しなければならないことは滅多に無い。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/684
685: デフォルトの名無しさん [sage] 2018/12/27(木) 09:26:03.58 ID:lhYnw8ev 早速間違いだ。 fullPassと書いてる所が一ヶ所ある。 fullPathに直しておいてね。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/685
686: デフォルトの名無しさん [sage] 2018/12/27(木) 11:21:46.87 ID:coxr7jtk >>684 まぁ、そうかもね。 でも最初はいろいろ試してもいいんじゃない? http://mevius.5ch.net/test/read.cgi/tech/1432173164/686
687: デフォルトの名無しさん [sage] 2018/12/27(木) 11:57:21.88 ID:psUgzr4+ >>682‐685 ありがとうございます 深夜のご指摘から>>685まで参考にしていて 現在デバッグしてますが、“カピバラ種類”のシートが上手く取得できていないようです。 ちなみに 'セルのB3てどこ? '多分ボタンのあるシートかなと推測。 その通りです、分かりづらくてすいません。 改行制限のためいくつかコメントは掲示板に書き込むとき省いてしまいました。 'Range("A1").Selectって何の為に有るの? ですが 、新シートのA1から書き込む為に書きましたが、デフォルトでA1から書き込むみたいですので 無駄なマクロでしたね。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/687
688: デフォルトの名無しさん [sage] 2018/12/27(木) 12:23:02.37 ID:psUgzr4+ 少し言葉足らずでした。 iのカウント(空白行までループ)は上手く出来ているので、現マクロ有効ブックの新シートに取得情報を 書き込めていないようです。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/688
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 314 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s