[過去ログ]
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1432173164/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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 op
nSht = 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
689: デフォルトの名無しさん [sage] 2018/12/27(木) 12:57:12.54 ID:lhYnw8ev >>688 うん? Do〜Loopの中はiのカウントアップしてるだけなので、あなたが省略した(と勝手に思ってるんだけど)コードが動いていないということ? 念のためにいうと、元々のコードには情報を取得するコードが全く無いからこのコードだけじゃ取り込めないのは当たり前だよね。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/689
690: デフォルトの名無しさん [sage] 2018/12/27(木) 13:47:48.84 ID:psUgzr4+ すいません、 不覚に気づき、 dim j as long j = 1 を追加し、ループを Do While opnSht.Cells(5, i).Value <> "" addSht.cells(j,1) = opnSht.Cells(i, 5) j = i i = i + 1 Loop にして上手くいきました、ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/690
691: デフォルトの名無しさん [sage] 2018/12/27(木) 13:57:20.08 ID:psUgzr4+ 細かい修正として j = i i = i + 1 の部分も i = i + 1 j = i - ○ のようにして、 無駄にできてしまう空白もなくしました。 お付き合いしてくださった方、 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/691
692: デフォルトの名無しさん [sage] 2019/01/03(木) 04:15:42.29 ID:aAVkqECP 質問です ワークシート上にすでに引かれている複雑な枠線をコードとしてどうにか変換というか取得できる方法はないでしょうか… http://mevius.5ch.net/test/read.cgi/tech/1432173164/692
693: デフォルトの名無しさん [sage] 2019/01/03(木) 04:35:53.91 ID:Em9anKIf >>692 描くのの逆をするだけじゃ? http://mevius.5ch.net/test/read.cgi/tech/1432173164/693
694: デフォルトの名無しさん [sage] 2019/01/03(木) 13:29:44.69 ID:aAVkqECP >>693 返事ありがとうございます すみません、私の頭では理解できません…よかったらもう少し詳しく教えてもらえませんか http://mevius.5ch.net/test/read.cgi/tech/1432173164/694
695: デフォルトの名無しさん [sage] 2019/01/03(木) 14:57:12.35 ID:9QrYctZ6 何をしたいのか書いてよ 罫線の設定状況を知りたいだけならRange.Borders見なよとしか言えないし https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.borders http://mevius.5ch.net/test/read.cgi/tech/1432173164/695
696: デフォルトの名無しさん [sage] 2019/01/03(木) 15:15:01.64 ID:Em9anKIf >>694 罫線を描く動作は理解できてる? マクロ記録で簡単に調べられますよ。 例えば、2行2列選んで、縦横斜め全てに実線入れて 記録されたものを見ればどのような構造で描かれているのか 分かります。 記録の際は、xl〜の定数でよいですが、取得の際は数値で 返ってくるので注意。 調べたければオブジェクトブラウザで調べてもよいですが、 イミディエイトで、?xlThin みたいに簡単に確認する方法も あります。 でも、取得して使うなら数値のままでもOKで
す。 ここまではOK? http://mevius.5ch.net/test/read.cgi/tech/1432173164/696
697: デフォルトの名無しさん [sage] 2019/01/03(木) 16:26:50.99 ID:+aY40et6 >>695 >>696 会社でとある先人の作ったエクセルのフォーマットがあるのですが、それを使って作業するおばあちゃんが度々壊してしまうのです セル結合やセルの幅など複雑になっている物なので、壊してしまったパソコンの不得意なおばあちゃんはいつも四苦八苦していて、どうにか入力された数値以外の罫線や列幅などだけボタン1つ簡単に戻せるものを作ってあげたいと考えています 頂いたヒントを元にもう少し頑張ってみます 結局わからなければまた質問させて
ください ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1432173164/697
698: デフォルトの名無しさん [sage] 2019/01/03(木) 16:38:04.35 ID:CdG5H8Qg >>697 シートの保護じゃダメなの? おばあちゃんには特定セルに数値入力させてるだけなんでしょ? http://mevius.5ch.net/test/read.cgi/tech/1432173164/698
699: デフォルトの名無しさん [sage] 2019/01/03(木) 17:30:36.94 ID:Em9anKIf >>697 シート保護で十分みたいですね。 もし何らかの理由で保護できないのであれば、 同フォーマットの隠しシートから書式貼り付けした方が早そう。 セル結合もあるし、1セルずつ罫線情報取得とか効率悪すぎ。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/699
700: デフォルトの名無しさん [sage] 2019/01/03(木) 22:01:21.27 ID:aAVkqECP >>698 >>699 それがわかりながらあらゆる所(不規則)を動かさないといけない時があったりで、保護だと都合が悪かったんです フォーマット自体を大幅に変更できればもっと色々と簡単にできるのですが、それも他のおばあちゃんたちが前の方が良かった〜なんて必ず言うので見た目を崩すことはできません 担当のおばあちゃんorおばさんが変われば書式貼り付けのための範囲選択も上手くできないだろうから(全選択など知りません)また誰かが黙って長時間四苦
八苦する事になってしまいます 無駄にすべて最初からやろうとしたりも平気であります 平均年齢49才の職場なので仕方ないんです 誰にも聞かずに戻したい部分を戻せるような、とーーってもわかりやすい説明付きのボタンをユーザーフォーム上にでもいくつか作ってあげたいと思っています 崩してしまうパターンはだいたい把握できているので、それが最善かなと… http://mevius.5ch.net/test/read.cgi/tech/1432173164/700
701: デフォルトの名無しさん [sage] 2019/01/04(金) 02:06:01.37 ID:+nkelZ7z >>700 いや、だから隠しシートから自動的に書式修復をかければという意味で言うたのですが、、 トリガーはファイルオープンでも、ボタンでも。 試しにやってみたけど、罫線やセル結合は問題なく修復できるみたい。 入力規則とかは引き継げないみたいなので別にケアする必要があるかも。 行挿入、列挿入とかされて座標がかわるようなことされないならこれで十分では? 自分がよくやるのは、表のエリア毎に範囲名をつけて、そのエリア単位で最初に表組みした とき
と同じ要領で表作成を記録していき、コードを整理して修復マクロにします。 これなら起点となるセルが壊されなければ行挿入、列挿入にもある程度柔軟に対応 できるし、式や入力規則の修復も追加できる。 まぁ、利用者は作成者の想定を軽く超えてきますけどね。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/701
702: デフォルトの名無しさん [sage] 2019/01/04(金) 08:59:12.57 ID:jYRqvj54 >>701 理解力なくてすみません、、、 そしてありがとうございます そのやり方を取り入れてとりあえず一度作ってみます! http://mevius.5ch.net/test/read.cgi/tech/1432173164/702
703: デフォルトの名無しさん [sage] 2019/01/19(土) 20:28:43.04 ID:gUifgf+0 ディム a アズ インテジャー コンスト b アズ バリアント = ファルス この読み方はあってますか? http://mevius.5ch.net/test/read.cgi/tech/1432173164/703
704: デフォルトの名無しさん [sage] 2019/01/19(土) 20:32:43.51 ID:b1memYXI さいごフォルス http://mevius.5ch.net/test/read.cgi/tech/1432173164/704
705: デフォルトの名無しさん [sage] 2019/01/20(日) 08:43:51.62 ID:KJwN8fo6 マジか! 自信なくなってきたわ。 フォー イーチ 〇 イン、スターコンブ、ブイビーナロウ、コンカット、 ナンバーフォーマットローカル、ドゥ ホワイル、イズナメリック、 デカー ファンクション セットウインドウロング リブ "ユーザー32" エリアス、 バイバル 〇 アズ ブーラン、アプリケーション.ハウンド、オプション エクスプリシト。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/705
706: デフォルトの名無しさん [sage] 2019/01/20(日) 09:19:09.77 ID:1t0h4eLG numeric ニューメリック alias エイリアス boolean ブーリアン http://mevius.5ch.net/test/read.cgi/tech/1432173164/706
707: デフォルトの名無しさん [sage] 2019/01/20(日) 09:40:31.66 ID:brNktcWU ディクレィア http://mevius.5ch.net/test/read.cgi/tech/1432173164/707
708: デフォルトの名無しさん [sage] 2019/01/20(日) 12:50:34.64 ID:gJkAP+bh ぶーりーんっておもってた http://mevius.5ch.net/test/read.cgi/tech/1432173164/708
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 294 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s