Excel VBA 質問スレ Part68

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ dbda-8BP0)
垢版 |
2020/08/30(日) 11:55:27.33ID:Oy/VxFsh0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part67
https://mevius.5ch.net/test/read.cgi/tech/1593104489/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/10/27(火) 18:13:10.53ID:l1bcXJEN0
VBAの何が終わってるってこう言う書き方に少しも疑問を覚えない老害がいっぱいいるんだよな
2020/10/27(火) 18:22:43.09ID:qZwcfAyua
一旦変数にいれればいいんじゃね
2020/10/27(火) 18:42:07.59ID:6WpiGXJ0M
疑問に思ったところでどうしようも無く無いか
自分でクラスでも作るとか?
2020/10/27(火) 18:50:59.46ID:D9T+kNV20
冗長にしたくなければテーブル使うのが1番手っ取り早いかなぁ
プロパティの分かりづらさとネット検索結果の貧弱さは仕方ない
2020/10/27(火) 19:33:07.02ID:w/TzFTqy0
>>697
resizeはどうだ?
2020/10/27(火) 19:35:27.63ID:w/TzFTqy0
最近おもいついたこと
ワークシート関数→波紋
VBAマクロ→幽波紋
2020/10/27(火) 23:01:35.17ID:o6G0sPC10
>>689
裏技っぽいかは知らんがこれ好き
a = b = c
705デフォルトの名無しさん (ワッチョイ 0563-9Kcm)
垢版 |
2020/10/27(火) 23:03:09.41ID:gj2Ohu8L0
>>679
ありがとうお勧めではないそうですが
教えてくださった方法でコメントアウトできたので
使いますww
2020/10/27(火) 23:05:41.35ID:WVQXu4mGa
代入が式の言語だと、結果 a、b、c が同値になるし、イヤだなぁ…
2020/10/27(火) 23:13:03.58ID:WVQXu4mGa
>>705
[表示]-[ツールバー]-[編集] で表示られるアイコンの左から9番目で選択範囲を一括コメント化、その右のアイコンでコメント解除
それも試してみてください
2020/10/27(火) 23:23:37.13ID:2iVpt4JMa
>>704
おれは嫌い
709デフォルトの名無しさん (ラクッペペ MMeb-4t7V)
垢版 |
2020/10/28(水) 06:32:08.53ID:MUExsF8QM
マクロ実行後、
エクセルファイルを保存しようとすると
プライバシーに関する注意
というメッセージが出ます。
出ないよう設定できるようですが
セキュリティ的に不安です。
皆さんどのような対処をされてますか

いったんエクセルを全部終了するくらいしか
思いつきません
2020/10/28(水) 06:48:10.23ID:MGib4+U5M
マクロ実行後、 ←この時点で手遅れ
711デフォルトの名無しさん (ラクッペペ MMeb-4t7V)
垢版 |
2020/10/28(水) 08:53:47.67ID:MUExsF8QM
>>710
実行前に他のエクセルを終了するのが
一般的でしょうか
2020/10/28(水) 12:22:09.47ID:VqefcRCnM
>>704
好きとか嫌いとかじゃなくて
If b = c Then
a = True
Else
a = False
End If
みたいなコード書くなら
a = b = c
ッて書いた方が楽じゃね?
2020/10/28(水) 12:26:16.35ID:SBFJNMXDM
後から見直すときに前者の方が見やすい
書く時に楽かどうかは別にどうでもいいです
2020/10/28(水) 13:08:13.57ID:Gcn0+siH0
a = (b == c)
ならいいんだけどなぁ
715デフォルトの名無しさん (ラクッペペ MMeb-rMvQ)
垢版 |
2020/10/28(水) 13:28:06.88ID:ArgZkv9MM
インタプリタの時代にif文の構文解析が遅いからって可読性皆無の謎の数式書いてた思い出
716デフォルトの名無しさん (ワッチョイ 8bf2-+/f8)
垢版 |
2020/10/28(水) 15:35:13.90ID:0lSgHaJH0
>>697
教えてくれてありがとうございます
これが普通なんですね
仕方ないので暫くはこれで大人しく頑張ってみます
何か荒れてたとこに変な質問して申し訳ありませんでした
2020/10/28(水) 18:57:08.32ID:koZ0sZlBM
>>696
冗長とか増長とか言う前にシートを指定せずにcells( )とか使うのはバグの元、せめて
With Worksheets("sheet2")
.Range(.Cells(1, 1), .Cells(UBound(tmp), UBound(tmp, 2))) = tmp
End With
にした方がいい
2020/10/28(水) 19:02:36.90ID:SBFJNMXDM
withはなんか嫌い
2020/10/28(水) 19:10:52.23ID:URI3IFfrM
DAIGO監修マッチングアプリ
720デフォルトの名無しさん (ワッチョイ 93e6-rMvQ)
垢版 |
2020/10/28(水) 19:13:48.38ID:Aw3ALjki0
..でもうひとつ上のwithが使えるとか変な拡張してほしい
2020/10/28(水) 19:29:16.70ID:n4xiXKpa0
>>717
With ThisWorkbook.Worksheets("sheet2")
.Cells(1, 1).Resize(UBound(tmp), UBound(tmp, 2))) = tmp
End With
おれはブックから指定しないと気が済まんな
2020/10/28(水) 19:32:00.41ID:XiKqUxDYM
withはなんか嫌い
2020/10/28(水) 19:40:24.53ID:8aJXN6gS0
Sheetオブジェクトにbookから指定したシート格納して扱うことが多いかなー
724デフォルトの名無しさん (ワッチョイ 93e6-rMvQ)
垢版 |
2020/10/28(水) 19:43:09.41ID:Aw3ALjki0
SetしたらNothing警察がウルサイんだよ
2020/10/28(水) 19:44:40.32ID:n4xiXKpa0
Withじゃないと他人がつけたSheetやRangeの変数名を把握するの大変じゃない?
2020/10/28(水) 19:49:35.60ID:HcvuYFHJd
>>696
???
worksheets("sheet2").usedrange.value= tmp
じゃ駄目なのか?

範囲の文字が欲しいなら
worksheets("sheet2").usedrange.address
とかでも駄目?
2020/10/29(木) 12:00:49.68ID:xpkBYj/E0
>>726
sheet1と2じゃUsedRangeの範囲が違うだろ
sheet1の範囲取得しないと
2020/10/29(木) 12:27:28.32ID:wp9TtuK3d
>>727
意味が分かった。
ならアドレスでOK。
アドレス違うなら関数作れ。
入ってる二次元配列がどんなであろうと貼り付け先1セル指定で貼り付く奴。
2020/10/29(木) 18:28:14.85ID:2VkEHk3qa
背中にお婆さんがはり付いているよ
2020/10/29(木) 21:30:53.07ID:4HKKGi1r0
vba配列操作貧弱すぎてつらい
2020/10/30(金) 14:29:28.42ID:mCzxAGXk0
ならVBAやめなよ
2020/10/31(土) 00:00:44.18ID:OI+kPxFG0
無理にやる必要わない
UB人口少ないし
2020/10/31(土) 19:30:50.69ID:ihhGxqs70
複雑な部分はpowershellでやれ
2020/10/31(土) 20:06:28.46ID:p/A/SH820
そしてそっちのスレでやれ
2020/11/01(日) 06:21:53.30ID:eo7/HsaKM
Excel add-insならJavaScriptでExcelを操作できる
https://docs.microsoft.com/ja-jp/office/dev/add-ins/excel/excel-add-ins-overview
2020/11/01(日) 13:18:53.92ID:RpKdwAj80

老害がいっぱいでしょう
737デフォルトの名無しさん (ワッチョイ 9963-fDVG)
垢版 |
2020/11/01(日) 14:06:41.78ID:wVa8LgII0
会社でxlsmファイルを次の担当に引き継ぐことになりました。
microsoft scripting runtimeの設定をそのファイルに施してあります。
次の担当者は自分で設定しなくても普通に使えるんでしょうか。
それとも自分で開発タブを表示するところから設定しないと
エラーになってしまうのでしょうか。
2020/11/01(日) 14:29:30.14ID:rqDSIn020
参照設定はユーザー毎じゃなくてファイル毎に設定
2020/11/01(日) 14:51:11.65ID:HO7tvAnU0
>>737
なぜやってみないの?ゆとりなの?
740デフォルトの名無しさん (ワッチョイ 9963-fDVG)
垢版 |
2020/11/01(日) 15:54:59.46ID:wVa8LgII0
やってみたところ>>738の印象だったのですが
実際どーなのかなあって思いまして・・
2020/11/01(日) 17:10:27.45ID:osQdZjWG0
一時期excelでpthon使えるようになるとかあったけどあれどうなったんだ
正直ちょっと期待してたんだけど
742デフォルトの名無しさん (ワイーワ2 FF63-OHB4)
垢版 |
2020/11/01(日) 22:02:08.34ID:8xLcKULEF
>>741
その話は消えたようだ
https://qiita.com/yniji/items/b38bc312e860027108ac
2020/11/03(火) 03:00:31.66ID:N88Bm9k/0
僕「複数のブックから値を取得したい時どうしたらいいんだろ」検索
検索結果「全部のブックを開いて取得しましょう。外部参照しましょう。」
僕「こいつら正気かよ…」
2020/11/03(火) 07:44:54.83ID:Z7LuIdeU0
他にどうしろと
特にZIP圧縮になって以降
2020/11/03(火) 12:46:38.69ID:3Zl4+FN80
ちょっと読むだけなら4macroとか大量データでないならDB接続とか
2020/11/03(火) 15:03:36.63ID:Wl8qkqc+a
いつもの人でしょ
2020/11/03(火) 22:04:34.20ID:DcyztcMU0
クラスが便利なのは分かっているんだが、難しくてやる気なくしてたんだけど
ユーザー定義型Typeね、アレすげえな
バカなオレでもプログラミングしている気分にさせてくれるくらい簡単
2020/11/04(水) 06:49:14.88ID:dR//5Nki0
おれもクラスを調べてるけど要はオブジェクトを自分で作り出せるというところまでは分かった
2020/11/04(水) 18:04:37.59ID:H6E0ixtH0
>>745
おそらく4macroで使える程度の関数群は外部参照で元ファイル開かなくても参照できる
どんなデータを集計したいかしらんけどただ値を取得したいだけならブック開く必要ないよ(裏では開いてるけど)
一方最近の関数使ってるなら安全のためにブック開いてたほうがいい

DB接続ってのはエクセルファイルにDB接続できないから意味ないだろうね
2020/11/04(水) 19:12:35.17ID:LUbnrRil0
できることしか言ってないよ
2020/11/04(水) 20:01:28.17ID:YMXq55HT0
>>749
db接続できないと思ってるような人はコメントしなければいいのに
2020/11/04(水) 20:42:14.94ID:iJjhODSM0
>>749
ジェットでインストール可能なイサムすればつながるだろうが!
2020/11/04(水) 21:07:01.95ID:+u5LkCAg0
txtデータをダイアログから開いた時に
元のxlsmにあるテンプレというシートを
毎回そのブック内の右側に添付したいんですが
御教授お願いします。。
毎回txtデータの名前は異なります。
なかなか調べてもわかりません
2020/11/04(水) 21:12:25.29ID:iJjhODSM0
よくわからんが、単純に If right(filename, 4) = ".txt" Then じゃダメなんかい
2020/11/04(水) 21:32:08.71ID:+u5LkCAg0
>>754
初心者で理解できてなくてすみません
色々サイトを検索はしたのですが

Sub テキストを読み込む() Dim TARGET_TEXT_FILE As String
ChDir "C:\テキストデータフォルダ"
TARGET_TEXT_FILE = Application.GetOpenFilename("テキストファイル,*.txt")
If TARGET_TEXT_FILE = "False" Then Exit Sub Workbooks.OpenText TARGET_TEXT_FILE End Sub

今のところこれでテキスト開いてるだけなんですが
全く変えた方がいいですか?
これで開いた新ブック全てに元々あるテンプレというシートを添付させたいのですが
説明も下手で申し訳ないです
2020/11/04(水) 22:21:06.79ID:+u5LkCAg0
結構片っ端からヒットしたサイト調べてますが答えがあるのかもしれないのですがなかなか知恵が出てこず…どなたかお助け頂ければと
2020/11/04(水) 22:28:00.55ID:iJjhODSM0
開いた後にこうかな?

ThisWorkbook.Worksheets("テンプレ").Copy , Workbooks(Dir(TARGET_TEXT_FILE)).Sheets(1)
2020/11/04(水) 22:41:28.62ID:4kHESo6md
>>755
Dim tsh As WorkSheet
Set tsh = ThisWorkBook.Worksheets(″テンプレ″)
としておいて、
テキストファイルをオープンした後に
tsh.copy
ActiveWorkbook.insert
とかなんとかできないかね
2020/11/04(水) 23:45:56.25ID:+u5LkCAg0
>>757
>>758
お二方、本当にありがとうございます。
いまホテルでPCが無い環境になってしまったので
また試させていただきます。
もし上手く動かなくても勉強にさせてもらいます。本当に感謝します。
2020/11/05(木) 00:34:34.60ID:Hf0k6gxcd
初心者、勉強中って設定でくれくれするスタイル
2020/11/05(木) 00:55:08.79ID:E/zWC4JEM
ID:+u5LkCAg0

いつものあいつだろ
762デフォルトの名無しさん (ワッチョイ d2e6-DMUe)
垢版 |
2020/11/05(木) 01:18:00.31ID:MmJj0qw00
わざわざこんなとこで聞くよりググったほうが早いからな
ただのかまってちゃんだ
2020/11/05(木) 01:33:03.90ID:wTkbtAOfd
>>762
意味もわからずコピペするだけの馬鹿だから無理なのだろ
2020/11/05(木) 01:37:27.03ID:eUwwuQR20
>>759
死ね
2020/11/05(木) 13:00:01.73ID:OVMdlSXB0
>>751
>>752
直じゃなくて一旦DB化(一括インポート)しなきゃなんねえの
Jet.OLEDB,ACE.OLEDB,SQL Server,Power Query
外部DBが使えるならなんでもええがな
こいつら通さずエクセルに直にSQL送ったところで何も帰ってこないよ
さらにいうとエクセルファイルにDBアクセス中にエクセルファイル書き換えると整合性が取れなくなる
別物をかましてるんだからエクセル同志でDB接続とは言えんだろ
2020/11/05(木) 13:45:53.52ID:eUwwuQR20
>>765
黙っていればいいのに
2020/11/05(木) 17:33:55.88ID:E/zWC4JEM
ODBC全否定の馬鹿がいる
768デフォルトの名無しさん (ワッチョイ 3162-cN9R)
垢版 |
2020/11/05(木) 18:57:09.85ID:hU6fY/MX0
凄く初歩的な質問ですいません。
VbaでEDGEを操作することは可能ですか?
可能ならIEで使っていたコードは使えるんでしょうか?
2020/11/05(木) 19:50:31.94ID:SbS9cEmY0
>>765
ただの屁理屈だそんなもん
ADOだのMSクエリ前提で話しているに決まってるだろうが

パソコンでテレビを見るには、チューナを外付けしないといけないから、
パソコンでテレビを見られるとは言えない、とか言ってるようなものだぞ。
2020/11/05(木) 19:55:08.43ID:f0srNcEJ0
それは見られるとは言えなくないかな
2020/11/06(金) 08:21:13.15ID:aBeRil+I0
いつものあいつって、最初はものすごく下手に出ておいて、希望した回答が得られないと態度が豹変するあいつ?
2020/11/06(金) 08:41:53.56ID:OISZDae80
元管理職の失業組だろ
2020/11/07(土) 18:11:38.24ID:6yLRlRLnd
VBAで業務の効率化ってさ
そもそもその会社の業務自体に無駄があるってことなんじゃないかと思う
2020/11/07(土) 20:19:13.66ID:ufTrf7Gx0
職場によるだろ
2020/11/08(日) 11:01:30.15ID:j+tA5MDCr
ipodを水槽にいれて泡がでたら無駄な隙間があるとか言う人いたな
2020/11/08(日) 19:42:01.52ID:T0G2ZKHSd
>>775
それ、Walkman
2020/11/08(日) 21:47:30.07ID:EFkAxVvD0
ジョブズじゃなかったんだな
そしてウォークマンでもなくてハンディカムのようだ
https://www.youtube.com/watch?v=O1mA5aAobQs

このサイトから ttps://www.netlorechase.net/entry/2017/10/24/225700
2020/11/08(日) 23:24:57.18ID:FZ/N1P5c0
そうだったか
779デフォルトの名無しさん (ワッチョイ f6ba-4KOL)
垢版 |
2020/11/10(火) 00:58:18.05ID:e7NaagA90
ExcelのM言語のMはマイクロソフトのM??
2020/11/10(火) 03:15:43.67ID:Zw48sTQ/M
M言語
M数式言語
M formula language

Mathemstics?
2020/11/11(水) 01:18:20.78ID:410+hQkP0
>>777
マジか。俺もジョブズだと思ってたわ
782デフォルトの名無しさん (ワッチョイ 4b64-bMCz)
垢版 |
2020/11/11(水) 04:19:34.31ID:WkAepZ970
3つの整数をA1,B1,C1にいれるとE1に最大公約数を返すプログラムの作り方をforを用いてプログラムを教えてください
2020/11/11(水) 05:44:55.43ID:VHf4ZVdyd
>>782
まずVBEを起動するんだfor!
アルゴリズムを調べてコーディングするんだfor!
うまく動くかテストするんだfor!
2020/11/11(水) 07:39:17.89ID:8Vps9xVZF
関数だけでできそうだけど
そういう課題なのか
2020/11/11(水) 09:12:45.50ID:NzDVkmVe0
>>782
GCD関数使えよforw
2020/11/11(水) 10:48:02.91ID:Dk9c6JTy0
worksheetfunction.gcd
2020/11/11(水) 10:56:58.34ID:IB1GfatT0
>>782
最大公約数ってどうやって求めるか学校で習わなかった?
2020/11/11(水) 13:53:58.74ID:e2rtbcNbd
習った方法を使えっていう宿題でしょ
2020/11/11(水) 21:28:17.72ID:vTolfJQJ0
最大公約数ってなんだっけ
2020/11/12(木) 02:56:54.96ID:D//YL0tK0
Option Explicit
Sub a1tob1toc1nosaidaikouyakusuuwoe1ni()
  Dim i As Integer
  For i = 1 To 32766
    Range("E1").Value = Application.WorksheetFunction.Gcd(Range("A1"), Range("b1"), Range("c1"))
  Next
End Sub
2020/11/12(木) 09:09:00.81ID:ST9GqaMQx
integerは内部的にlongで
2020/11/12(木) 09:53:50.69ID:dLdd5MAGd
for文にするだけ時間の無駄でワロタ
2020/11/12(木) 10:00:33.57ID:PR3AJwPG0
>>789
https://ent.smt.docomo.ne.jp/article/3770312
2020/11/12(木) 10:05:34.74ID:D//YL0tK0
「最大公約数的に言ってもさあ、チーズはトマトと合わないだろ」
2020/11/12(木) 10:12:44.88ID:3oP0YSbIM
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E3%81%AE%E4%BA%92%E9%99%A4%E6%B3%95
2020/11/12(木) 12:26:30.98ID:jhXNMBL9d
>>790
E1のセルに穴が開いてしまいそう
2020/11/12(木) 13:00:21.74ID:Xe+3GA0qr
セルに穴が開くは草
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況