Excel VBA 質問スレ Part55

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:13:18.78ID:/fuF+goF
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part54
https://mevius.5ch.net/test/read.cgi/tech/1527334657/
689デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:15:17.92ID:gbtMedVo
>>688
ちょっと違うよ
>>482は理系院卒を「事務部門以外」とは言ってない。
事務部門にもいろいろな部署があるからね。いわゆる戦略的な「攻め」の部署には割とエリートっぽい奴が配属される。

まあスレの流れ的にはあまり関係ないからいいけど。
2018/08/16(木) 00:20:40.85ID:l34+V18a
>>689
確かに事務部門以外に限定しているわけじゃないけど、日本語弱い君とやり取りしてると細かいことはど―でも良くなる。

もっと基本的な所が既に通じないからな。
691デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:22:29.57ID:SOTYyfvv
(こいつらいったい何と戦っているんだ…)
692デフォルトの名無しさん
垢版 |
2018/08/16(木) 00:41:08.45ID:gbtMedVo
>>691
そりゃもちろん
「事務員に高度なITは使いこなせないから不要」
っていう固定観念と戦っているのさ。
事務員の中のポテンシャルの高い連中の能力を引き出せれば
くだらないSIerなんかとおさらばできて競争力も高まるからね。
2018/08/16(木) 06:03:27.79ID:H6lHpBvI
Worksheets("w").Range(Cells(1, 1), Cells(1, 43)).ClearContents
これってシートをアクティブにしなくても使えますよね?
アプリケーション定義またはオブジェクト定義のエラーが出てしまうのですが
2018/08/16(木) 06:29:39.37ID:AOJ6PJJu
>>693
そのコードが実行されるときにアクティブになっているブックにwシートがなければエラーになるぞ
当たり前だけど

指定してるシートの名前が"w"じゃなくて"w"とか"w "になってたなんてことはよくあるし、コードの実行時にwシートを持たない別のブックがアクティブになってしまってる場合もある
695デフォルトの名無しさん
垢版 |
2018/08/16(木) 06:34:34.81ID:HHNkLN/y
>>693
wがアクティブでないとエラーになりますよ
2018/08/16(木) 06:57:21.22ID:O4RP4kA0
>>691
NASAの工作員かなんか
2018/08/16(木) 07:23:14.62ID:t6OwQxX1
>>688
> 理系院卒は会社に所属している前提だ。
で、それが何か?
含まれるの概念がわかってないの?
あと会社にいるからと言って所属部署があるとは限らんよ、社長かもしれないしね w
2018/08/16(木) 08:10:34.34ID:l34+V18a
>>697
文章をちゃんと読め。
理系院卒は"この場合は"何処かの部署に含まれている前提だ。
社長であるという前提ではない。
2018/08/16(木) 08:26:56.80ID:t6OwQxX1
>>698
で、それが何か? w
ツッコミが明後日過ぎて笑うわ
2018/08/16(木) 08:51:59.47ID:l34+V18a
>>699
そういうわけで日本語に弱く論理破綻しているのがお前という結論にお前が抗えなくなったということだ。
701デフォルトの名無しさん
垢版 |
2018/08/16(木) 08:59:32.11ID:BCwpVRwG
本当に再開してるじゃん
もしかして自作自演?
だとしたら深刻な症状ですよ
702デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:06:30.09ID:ZGWCaRN6
セルに4桁の数字を打ち込むと、その行の変えたい4桁の数字が全部入れ替わるようにしたいのですが、できますか?
いまは、デフォルトで4桁の数字を9999に入れておいて、すべて置き換えで変えたい4桁の数字に置換えています。
よろしくお願いします!
703デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:07:26.88ID:Au8uUKpS
出来る
2018/08/16(木) 09:12:04.69ID:l34+V18a
そもそもは>>477>>482のやり取りをどう解釈するかという問題だ。

日本語弱い君の解釈では>>482は事務部門にいる理系院卒という解釈だ。
そして俺の解釈では>>482では理系院卒は事務部門に限定しているわけじゃないという解釈だ。

それなのに目先の文章や単語単体にとらわれて元々の>>477>>482のやり取りを忘れてもらっては困る。
2018/08/16(木) 09:21:29.75ID:l34+V18a
>>702
今通勤中で手元にPCが無い。
WorkSheetのセルの値が変わったイベントで以下のようにする。
コードの中でTargetがA列の場合だけ以下が走るようにすればOK。
あとRows(i)はUsedRangeに限定した方が良いかな。
Dim cl As Range
For Each cl In Rows(i).Cells
cl.Value=Replace(cl.Value,Cells(i,1).Value)
Next
706デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:37:10.05ID:gbtMedVo
>>704
悪いけど>>482は事務部門にいる理系院卒という意味だよ。
文章だけではそう限定できないから、どう取っても論理的に解釈間違いになるわけじゃないけどね。

>>477では事務部門のスタッフを「ねーちゃん・オッサン」と呼び、VisualStudioを使った開発なんかできない
人々の集まりのように描写していた。
それを「印象操作」と呼んだわけだ。
707デフォルトの名無しさん
垢版 |
2018/08/16(木) 09:40:28.42ID:fIO0uyHl
既出かも知れません。
セルに入力した式を、数式として返すvbaが欲しい。

あるセルに=A1×A2と入っていれば、指定セルに2×3=6とか表示するやつ。
2018/08/16(木) 09:43:32.55ID:t6OwQxX1
>>700, >>704
> それなのに目先の文章や単語単体にとらわれて
それお前な

> ・法学部は学部に含まれる
> ・理系院卒と部署に関係はある
どんな関係があるんだ?
そもそも「含まれる」と「関係ある」という時点で比較になってないし
>>655で許してやったんだからそこでやめてりゃいいのに w
2018/08/16(木) 09:45:06.52ID:WItIpmjO
じゃ、作れよ
俺はできんけど
710デフォルトの名無しさん
垢版 |
2018/08/16(木) 10:01:07.98ID:gbtMedVo
>>708
>・理系院卒と部署に関係はある

単に事実として書いたんであって、論理的に読み取るとか解釈できる・できないの話じゃないでしょ。
2018/08/16(木) 10:53:21.12ID:t6OwQxX1
>>710
>>・理系院卒と部署に関係はある
> 単に事実として書いたんであって
だから「どんな関係」かを書きなよ

> 論理的に読み取るとか解釈できる・できないの話じゃないでしょ。
誰もそんな頓珍漢な話はしてない
712デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:00:04.22ID:gbtMedVo
>>711
もう書かれているから断る
2018/08/16(木) 11:16:20.96ID:18y92em0
やたら長文飛び交ってるからスルーしてたけどお前ら馬鹿なのか?
714デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:36:03.34ID:gbtMedVo
>>713
スルーして本題が復活するまで待つか自分で振るかすればいいじゃん。
715デフォルトの名無しさん
垢版 |
2018/08/16(木) 11:37:12.39ID:q37zSSst
これ自作自演のひとりの人らしいですよ
2018/08/16(木) 11:55:56.49ID:H/uvpZju
botだよ
2018/08/16(木) 12:04:32.04ID:MBvEYoJ9
最近のAIはすごいな
2018/08/16(木) 12:08:01.31ID:0dTep/In
>>693
cellsにも明示的にシート指定すればいいんだよ
2018/08/16(木) 12:39:20.77ID:t6OwQxX1
>>712
> もう書かれているから断る
でも、どこに書いてるかは明かせないってか?
低能がごまかすのによくやる手 w
2018/08/16(木) 12:42:23.78ID:VPX9WWnJ
>>717
AIにしても酷い出来だろ、これは
721デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:44:51.37ID:fD/OKUaV
まだ機械学習中なんで
722デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:51:48.47ID:gbtMedVo
>>719
みんな思ってるんだよ。
「断る」
ってな。
723702
垢版 |
2018/08/16(木) 12:55:51.13ID:ZGWCaRN6
>>705
ありがとうございます!
724デフォルトの名無しさん
垢版 |
2018/08/16(木) 12:59:30.71ID:fD/OKUaV
みんな知らんだろうけどこの法学部と院卒のくだりは昨日の夜からやってるんだからな
一旦睡眠のために休憩してたみたいだけど
こんなどーでも良いことを続けられるなんて凄いよな
2018/08/16(木) 13:41:48.38ID:18y92em0
>>724
人間はどーでもいいことにこそ注力しちゃう生き物なんだよなぁ
でもよそでやれ
2018/08/16(木) 14:01:26.94ID:t6OwQxX1
>>722
はいはい w

詭弁のガイドライン
5.資料を示さず持論が支持されていると思わせる
https://ma tome.na ver.jp/m/odai/2144740466806479501
2018/08/16(木) 15:28:17.68ID:MBvEYoJ9
また寝たのか?
生活リズムガッタガタやな
728デフォルトの名無しさん
垢版 |
2018/08/16(木) 16:03:09.69ID:3fUcOf8H
質問したいんやけど
VBA エキスパートのベーシックの資格を取ろう公式テキスト買ったんやけど
模擬試験をやろうとしたけどWindows 7までしか対応していないんや
Windows 10の場合、代替プログラムをインストールしろと書いてあるが
インストールの仕方がわからん
知ってる人いる?
2018/08/16(木) 17:16:08.82ID:5/9Syz1B
すげーな、ハンドルと右折の話から一週間くらいでこれとか活気があっていいなw

サマータイムの話が職場で盛り上がった時に
それくらいはプログラム作るときに考慮しておけよなって人が多くて
やっぱり求められてるのはハンドル作れってことなんだなと痛感したわ
ー応じようだなんて1ミリも思わないけどww
2018/08/16(木) 18:00:06.03ID:L21XhAl1
>>728
それ自体が試験の一部
2018/08/16(木) 18:48:51.47ID:1cDvfnJm
>>728
そのテキストのHPとかあるんじゃね
2018/08/16(木) 21:26:24.30ID:Z/EAAxtY
教えてください

マクロを登録したチェックボックスを用意して、ワンクリックでその隣のセルの値をコピーする
という簡単そうな事ができませんでした
Activecell.offset(,1).Copy
くらいの事でできると思っていました…
すみません助けてください
たぶんすぐ出来るとか豪語してしまいました
反省しています
2018/08/16(木) 21:31:43.44ID:W+10vliG
>>732
出来ませんでした、と謝ればいいと思う
2018/08/16(木) 21:46:48.30ID:BIfWFzcm
>>732
Private Sub CheckBox1_Click()
  CheckBox1.TopLeftCell.Offset(0, 1) = "←ここだよ"
End Sub
2018/08/16(木) 23:30:13.50ID:Z/EAAxtY
>>734
参考にしてできました!
ありがとうございました!!!
2018/08/17(金) 01:42:30.73ID:tOusYlvg
>>735
馬鹿は死ねよ
2018/08/17(金) 01:50:16.73ID:yjK/nJxZ
そんなに自分を卑下しなくてもいいぞ
2018/08/17(金) 07:22:56.68ID:nBQYbnk5
>>736
隗より始めよ
2018/08/17(金) 08:34:01.64ID:w1qAakJm
>>736
泣いて馬鹿を斬る
740デフォルトの名無しさん
垢版 |
2018/08/17(金) 17:20:05.57ID:lRSRxbIQ
with使うやつアホなの?
.で始まる部分を見るたびにwithを探しに行って確認する手間暇がかかって面倒。
2018/08/17(金) 18:01:20.36ID:KaaDwp63
普通の人が追うのに苦労するほどなら確かにWithの使い方としてはあまり良くない
ただ>>740の能力がなさ過ぎる可能性が微レ存
2018/08/17(金) 18:03:08.60ID:dZqaXnfX
>>740
何故頑なに変数使わんのか謎だよなw
一行に何度も.出てくるの見ると吐きそうになる
2018/08/17(金) 18:31:53.54ID:LWrcZ49g
with無くしてメソッドチェインできるようにAPI変えてくれ
2018/08/17(金) 22:49:53.19ID:Y+5hjotK
やだ
745デフォルトの名無しさん
垢版 |
2018/08/17(金) 22:57:11.00ID:zD2h2oDf
このスレもルビパー臭くなったなwプロさんwwwww
746デフォルトの名無しさん
垢版 |
2018/08/17(金) 23:20:18.52ID:vMaMvG23
>>740
オブジェクトの生成とWithを組み合わせるとスコープ(っぽいもの)の終了で
リソース解放してくれるのだけは重宝している。
2018/08/18(土) 00:16:22.71ID:u8ja/Ot0
>>746
その使い方以外あんまり使ってほしくない
.開始はなんというか、キョドる
748デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:25:21.58ID:1Mn+50P1
>>747
.開始?

With Createなんちゃら〜
.なんかメソッド
End With

Nothing代入せずにデストラクタが呼ばれるのいいじゃない
2018/08/18(土) 00:33:56.94ID:u8ja/Ot0
そういやvbaのガベージコレクションってどうなってるの?
sub・functionが終わったらメモリから全部消えるのかな
750デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:38:28.60ID:PRD/1v4M
>>748
C#のusing的な使い方になるってこと?
751デフォルトの名無しさん
垢版 |
2018/08/18(土) 00:52:41.00ID:QJ6qXFdU
プロさん出番やでーwwwww
752デフォルトの名無しさん
垢版 |
2018/08/18(土) 01:07:33.12ID:1Mn+50P1
>>750
単に End Withのタイミングで Class_Terminate が呼ばれるってだけだけど
Sub・Functionの終了を待たずにそのタイミングをコントロールできるのがいい。
2018/08/18(土) 02:05:15.49ID:Qu3u+5ap
>>750
なるほど、廃棄が前提ならアリやな。
でもVBA掲示板のプロっぽい風吹かしてるやつらは、廃棄する必要のないworkbookとかworksheetをワザワザwithする不思議。
2018/08/18(土) 02:35:51.37ID:gharGiQ8
ブルゾンちえみ
2018/08/18(土) 03:10:47.26ID:r01iwFGV
>>752
VBAのガベコレは参照カウンタ方式だから、参照がなくなったら廃棄されるだけ
変数に受けても、明示的にNothing代入すればその場で解放されるはずだからタイミングのコントロールはできる


>>753
そもそもWithは、単に何度も同じオブジェクト参照を書かなくて済むだけの機能だから
廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない
756デフォルトの名無しさん
垢版 |
2018/08/18(土) 09:04:47.19ID:1Mn+50P1
>>755
明示的にNothing代入するのがだるいって話さ
2018/08/18(土) 09:10:53.39ID:pAmB63kN
>>755
> 廃棄するかどうかとは関係ないしそんなものと絡めて使うべきではない
>>748みたいな奴ならEnd Withで廃棄されるだろ
難癖つけてるだけにしか見えん
2018/08/18(土) 11:11:44.78ID:HXszneG/
VBAで べき論 は不要
2018/08/18(土) 13:39:35.74ID:u8ja/Ot0
>>758
だよな
vbaなんてサクッとエクセルデータをどうにかしたり印刷の体裁整える程度でいい
そんなインストラクタだのガベージコレクションなんて考えて書く言語じゃない
2018/08/18(土) 14:07:43.88ID:WpMgA9bG
>>759
それもまたべき論
2018/08/18(土) 14:20:57.50ID:u8ja/Ot0
>>760
うん、知ってる
2018/08/18(土) 14:25:54.38ID:r01iwFGV
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな
2018/08/18(土) 14:26:50.24ID:r01iwFGV
>>758
ああ、そうだな
VBAではっていうより、ここでは不要だな
どうせまともな議論にはならんしな
2018/08/18(土) 14:37:54.05ID:pHq61mgp
>>763
明確に賛成 vs 明確に反対
の罵り合いになるなら荒れても面白いんだけど、なぜかそうならんね
みな本題から逸れたところで言い争う
2018/08/18(土) 15:01:58.92ID:u8ja/Ot0
前提や環境が違いすぎるからな
2018/08/18(土) 15:33:37.30ID:OGMfrWDu
>>753
WorkbookやWorksheet等の組み込みオブジェクトであってもWithで参照保持した方が良い場合もある
実際比べてみると分かるがオブジェクト変数を使うとメモリを確保する分動作が重くなるし、一つの処理の中でWithを使わず何度も同じプロパティ参照を行えばその分計算量は増える

それなりに大きな配列を処理したり何百ものブックやシートを処理したりするプログラムになれば、この手の小手先の調整が大きく動作に影響したりするよ
2018/08/18(土) 15:50:10.99ID:u8ja/Ot0
オブジェクト変数って言っても中身は参照でしょ?
どんなポンコツPC使ってるんだ
768デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:17:32.41ID:1Mn+50P1
>>766
With なんちゃら
  .Hoge
End With
の代わりに
Set ref = なんちゃら
として ref.Hoge
とするなら原理的に同じはずでは?
2018/08/18(土) 16:26:03.95ID:XAZ8inQ9
アマチュアのVBAユーザーだとインスタンスと参照の概念はよくわからないんじゃないかな
Java研修などでも新人が躓きやすいところだし勘違いしてもしょうがない
770デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:33:12.97ID:lPI41hg1
VBA推しの人の前提条件がアプリのインストールも何もかも出来ないって会社の話でしょ?
そんな会社は特殊な極一部じゃん
普通はインストールも出来るしアプリも入れれる
でもそうなるとVBAを使う意味が全くなくなるから特殊な環境の話をこじつけてるんでしょ?
2018/08/18(土) 16:38:06.28ID:u8ja/Ot0
>>770
>特殊な極一部じゃん
中小企業にばかりいればわからないかもな
そこら中にあるぞ
772デフォルトの名無しさん
垢版 |
2018/08/18(土) 16:53:37.10ID:lPI41hg1
大企業が極一部じゃん
2018/08/18(土) 17:07:16.74ID:u8ja/Ot0
>>772
正論じゃん!
すまんかった
774デフォルトの名無しさん
垢版 |
2018/08/18(土) 17:19:14.72ID:XAZ8inQ9
本当にエクセルしか使わない大企業などというものが存在するのだろうか
具体的にどこの企業のことなんだ?
2018/08/18(土) 17:32:37.30ID:ktgzOwh8
やたらとメール重用で社内システムは古臭いwebアプリ
末端はこそこそエクセル開発ってイメージ
ただの偏見だけど
2018/08/18(土) 17:50:50.84ID:XAZ8inQ9
>>775
そんなんで仕事になるのかね?
大企業じゃなくて底辺か中小の話ではないのかそれって
777デフォルトの名無しさん
垢版 |
2018/08/18(土) 18:23:43.35ID:lPI41hg1
大企業からwebアプリでやってそうだけど
違うんだ
共有や同時接続が決定的にダメダメなエクセルで仕事しなけりゃいけないなんで気の毒だな
2018/08/18(土) 19:11:00.94ID:QbV6+C0c
大企業でも大抵は入れていいアプリはホワイトリストとかで持ってるし申請すれば大抵は通る
779デフォルトの名無しさん
垢版 |
2018/08/18(土) 19:24:59.50ID:Rl20PTNq
じゃあVBAしか使えないって大前提が崩れるじゃん
そしたらVBAなんて使う意味ないじゃん
VBAしか使えないのに色んな工夫して凄いなぁーって
とてつもなく面倒で生産性の悪い事をさせられてるんだなーって
2018/08/18(土) 19:43:20.54ID:g/6PiQSP
で、またC#だのなんだのでループ?
781デフォルトの名無しさん
垢版 |
2018/08/18(土) 19:54:33.41ID:Rl20PTNq
ループっても前提条件が大きく変わったんだから議論は初めてと言っても良いだろ
2018/08/18(土) 20:12:24.79ID:u8ja/Ot0
>>775
メールは使いにくい!チャットワーク導入!
→チャットワーク使いにくい!
→メールへ

って感じ
783デフォルトの名無しさん
垢版 |
2018/08/18(土) 20:34:54.41ID:1Mn+50P1
>>779
根本的なところで根拠がないんだよ
Excelが周りで使われているんだからVBAも当然使いたくなるだろう
784デフォルトの名無しさん
垢版 |
2018/08/18(土) 20:41:33.86ID:Rl20PTNq
今からVBAを覚えようとしてる人へ

他言語ならもっとシンプルで簡単にそして高速ですよ
それに開発ツールも遥かに強力だしインテリセンスも抜群に効くし半分の労力で10倍の生産性があるので無意味なVBAを覚えるなんて遠回りしない方が良いですよ
VBAは主に大企業で制約がとてもキツく何もインストールさせて貰えない環境で働かされてる人向けです
785デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:15:29.15ID:1Mn+50P1
>>784
そんなあなたのイチオシは?
2018/08/18(土) 21:34:56.80ID:XAZ8inQ9
俺は.NETに惚れ込んでMS好きになったから、MSファミリの代表格であるExcelやVBAも好きになりたい
でも、ExcelとVBAの使い道を必死に探しても、残念ながらC#やPowerShellには勝てない日々が続いている
なんでもいいから、VBAコミュニティが努力して革命的な利用方法を発明してくれればいいんだけど
787デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:42:59.05ID:ddghJ7gy
>>784
VBAは大企業では大いに役に立つわけですな
788デフォルトの名無しさん
垢版 |
2018/08/18(土) 21:50:10.80ID:ddghJ7gy
ここはVBAのスレだから
VBAのポジティブなところにフォーカスしたいよね
その他の言語は専用スレに行っていただくとして

大企業で活かせるっていうのは良いですよね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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