X



Excel VBA 質問スレ Part51
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (スププ Sd4a-O827)
垢版 |
2017/11/08(水) 11:26:30.13ID:+KUB1/9hd

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

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

※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/

※前スレ
Excel VBA 質問スレ Part50
http://mevius.2ch.net/test/read.cgi/tech/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0002デフォルトの名無しさん (スププ Sd62-O827)
垢版 |
2017/11/08(水) 11:28:45.81ID:+KUB1/9hd
早速質問
今vbaでマップ使って
とある表の集計を行なっております
一つのkeyに対しアイテムが複数あるので
配列で入れようと思ったのですがうまくいきません
何か良い方法はありませんか?
0003デフォルトの名無しさん (エーイモ SE8d-dVlt)
垢版 |
2017/11/08(水) 18:45:21.53ID:oD3+O0e3E
Dim dic
Dim a()

redim a(1)
a(0)="test1"
a(1)="test2"

Set dic = CreateObject("Scripting.Dictionary")
dic.Add "key1", "アテネ"
dic.Add "key2", "ベオグラード"
dic.Add "key3", a

msgbox dic("key3")(0)
msgbox dic("key3")(1)
0005デフォルトの名無しさん (スプッッ Sd62-3K0w)
垢版 |
2017/11/08(水) 20:24:39.43ID:VRSOCYqCd
マップをやめて配列「で」入れる
って意味にとってたけど
マップの中に配列「を」入れる
って意味かよ
0009デフォルトの名無しさん (ワッチョイ ffe9-d8GJ)
垢版 |
2017/11/09(木) 20:29:22.40ID:7b9amfpv0
いい言葉を見つけた
Those who know don't talk. (知ってる人は教えようとしない)
Those who talk don't know. (教えてる人はあまり知らない)
0010デフォルトの名無しさん (ワッチョイ 5f61-KQ8c)
垢版 |
2017/11/09(木) 21:19:05.18ID:F89uizh+0
立て乙です。
自宅にエクセル環境が無いのでうろ覚えで
細かい間違いはあるかもですが、該当箇所以外はokという前提です

日本という名前のブック
各都道府県名のシート
があるとき

Dim Bn as Workbook
Dim T as Worksheet

Set Bn = Workbooks("日本")
Set T =Worksheets("東京都")

Workbooks("日本").Worksheets("東京都").cells(1,1) = "123"
Bn.T.cells(1,2) = "456"

を実行すると
上段は問題なく実行されて、東京都シートのセルA1に123が入力されますが
下段でエラーがでてしまいます。また

Bn.Worksheets("東京都").cells(1,2) = "456"
T.Worksheets("東京都").cells(1,2) = "456"

のどちらでも動きました
ブックもシートも両方変数で指定するとエラーになってしまうのでしょうか?
ブックもシートもそれなりに切り替えるので、可能であれば別で指定したいのですが……
心当たりがあればご教示いただけると助かります。
0011デフォルトの名無しさん (ワッチョイ ffe9-FM5+)
垢版 |
2017/11/09(木) 21:25:44.32ID:7b9amfpv0
>>10
× Bn.T.cells(1,2) = "456"
○ T.cells(1,2) = "456"

オブジェクトの操作は慣れが必要だけど、こういうもんだと思っておくれ
0012デフォルトの名無しさん (ワッチョイ 7feb-hKlY)
垢版 |
2017/11/09(木) 22:48:42.62ID:5mp2zjAU0
>>10
Bn.Tだと
workbookオブジェクトにTって言う属性や関数が無いからエラーになるのは当たり前
001410 (ワッチョイ 5f61-KQ8c)
垢版 |
2017/11/09(木) 23:38:24.62ID:F89uizh+0
返答ありがとうございます。

やっぱり両方同時に変数指定はできないんですね……
何というか、指定先が変わる度にセットするのは見づらいような感じがしてまして

明日何とか考えてみようと思います。ありがとうございました
0015デフォルトの名無しさん (ワッチョイ 7f1e-F71m)
垢版 |
2017/11/09(木) 23:57:00.50ID:3LOjlHPk0
  ●●●宇宙の外側に何があるのか?●●●
  http://jbbs.livedoor.jp/bbs/read.cgi/stud▲y/3729/1069922074/84-87

  この掲示板(万▲有サロン)に優秀な書き▲込みをして、総額148万円の賞金をゲットしよう!(*^^)v
  http://jbbs.livedoor.jp/stu▲dy/3729/ →リンクが不良なら、検▲索窓に入れる!
0016デフォルトの名無しさん (ワッチョイ 7fe7-TPjW)
垢版 |
2017/11/10(金) 00:13:48.87ID:anK9LaNF0
>>10
名前(Workbooks)が一致していればいいってものじゃない。
オブジェクト.メンバ という構文なんだよ。メンバとはそのオブジェクトが持っているメソッドとかプロパティとかのこと。

しかし Bn.T と書くと、オブジェクトとオブジェクトを . で繋いだことになり、これは意味不明なものになる。
0018デフォルトの名無しさん (アークセー Sx33-dU/l)
垢版 |
2017/11/10(金) 02:16:45.89ID:HkDX0vBax
>>16
質問者はオブジェクト.メンバの構文の意味が分かってなくてオブジェクトブラウザも見たことない人なんだろうな

オブジェクトのメンバ名を指定してメソッド関数やプロパティ関数を呼び出すことで別のオブジェクトインスタンスのコントロールを取得しているんだってことが理解できてないんだろう
0019デフォルトの名無しさん (ワッチョイ ff9d-QXYS)
垢版 |
2017/11/10(金) 10:37:51.15ID:3nhwt3Be0
>>10
>T.Worksheets("東京都").cells(1,2) = "456"
これホントに動いたのか?
WorksheetにWorksheetsプロパティとか無かったはずだけど

何がやりたいかよくわからんが
とりあえずブック名とシート名受け取って該当Worksheet返す関数作ればいいんじゃないかと
0020デフォルトの名無しさん (スップ Sd1f-l+iR)
垢版 |
2017/11/10(金) 12:27:51.12ID:VovrPQN6d
ワークシートchangeでtargetのA1が代わったらコードが流れるようにしてて、それ以外はexitで抜けてるんだけど、コードがセルに転記してて毎回changeの所に戻ってはexit、戻ってはexitで見辛いのはなんとかなりませんか?
0026デフォルトの名無しさん (ワッチョイ 7f41-sJj3)
垢版 |
2017/11/11(土) 08:36:27.60ID:Smy5DbHD0
MP4ファイルのプロパティ値を取得するプログラムでエラーが発生してしまいます
★の箇所で「'NameSpace'メソッドは失敗しました:'IShellDispatch6'オブジェクト」のダイアログが出ます
参照設定Microsoft Shell Controls and automaitonを追加してもだめでした
解決方法がわかれば教えてください

Private Sub CommandButton1_Click()
Dim Shell, Folder
Set Shell = CreateObject("Shell.Application")
Set Folder = Shell.Namespace(range("A1").Value) ←←←★
0027デフォルトの名無しさん (ワッチョイ 7f41-sJj3)
垢版 |
2017/11/11(土) 09:03:00.19ID:Smy5DbHD0
>>26
こちらのサンプルでとりあえず動きましたお騒がせしました
Dim FSO As Variant, SHell As Variant, Folder As Variant
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SHell = CreateObject("Shell.Application")
Set Folder = SHell.Namespace(FSO.GetFile(Songs(1)).ParentFolder.Path)
Cells(1, 1) = Folder.GetDetailsOf(Folder.ParseName(Target), 0)
0028デフォルトの名無しさん (ワッチョイ ff81-ouqv)
垢版 |
2017/11/11(土) 12:39:17.23ID:KQr/r2/c0
エクセル2013を使用しています。
今、日付を手入力しているのですが、何かで見たのですが
カレンダーから選択して入力できる機能があるのですがエクセルでもできる方法ないでしょうか?
いろいろさがした所アクセスはできるのですがエクセルは標準でもなく
カレンダーコントールなるものあるみたいですが、アクセスもインストールしていないので
VBAマクロの中にもありません
0029デフォルトの名無しさん (アウアウカー Sad3-wagG)
垢版 |
2017/11/11(土) 14:37:40.42ID:iMxfLIL8a
>>14
両方同時にではない。
Worksheetを変数に入れたということはブック情報も込みで入ってる。
だから便利なの。

Aブックのαシートを変数に入れてもその変数でBブックのαシートにアクセスできるわけじゃない。
君のBn.T式のやり方だとBブックのαシートにもアクセスできることになる。
それはBn.Worksheets(T)式と変わらない。
一方、もしBブックのαシートにアクセス出来ないのならBn.T式の意味が無い。
T式で良いわけだから。
0030デフォルトの名無しさん (アウアウカー Sad3-wagG)
垢版 |
2017/11/11(土) 15:59:40.18ID:D533txsCa
>>27
動くのは結構なことだけどFSO無くてもファイル情報取れるよ。
他の部分で便利にFSO使ってるなら良いんだけどその部分だけ見たら無駄だよね。

Dim objShell As Object
Dim objFolder As Object
Dim objFItm As Object
Set objShell=CreateObject("Shell.Application")
Set objFolder=objShell.Namespace("C:¥Users¥Hoge¥Desktop")
Set objFItm=objFolder.ParseName("fuga.txt")
Debug.Print objFolder.GetDetailsOf(objFItm,3)

参照設定とか書いてるけど、それぞれの意味分かってる?
CreateObjectってのは、その場で名前を元にオブジェクトを作成する。
だからコード書いてる間にはどんなメソッドやプロパティがあるか分からないからインテリセンスでの候補が出ることもない。
参照設定は使うオブジェクトを事前に指定することでオブジェクトの型とかメソッド、プロパティにアクセス(インテリセンス等)しやすくするためのもので、CreateObject使ったり、オブジェクトの型をObjectにしてるんだったら意味がない。
CreateObjectで生成出来ないのも有るし参照設定のがある意味上位互換だけど人にコードを提示する場合は参照設定するよう指示も書かなくちゃなんないからCreateObjectでの例が多いんだけどさ。
もちろん、参照設定したら動くようになるなんてことも無い。

Dim objShell As Shell
Dim objFolder As Folder
Dim objFItm As FolderItem
Set objShell=New Shell
Set objFolder=objShell.Namespace("C:¥Users¥Hoge¥Desktop")
Set objFItm=objFolder.ParseName("fuga.txt")
Debug.Print objFolder.GetDetailsOf(objFItm,3)
0031デフォルトの名無しさん (ワッチョイ ffe9-81rD)
垢版 |
2017/11/11(土) 16:02:23.93ID:vmoy6u3Z0
参照設定は極力しないほうが良いよね
参照設定を忘れてドハマリすることがたまによくある
0032デフォルトの名無しさん (アウアウカー Sad3-wagG)
垢版 |
2017/11/11(土) 16:04:50.69ID:D533txsCa
>>28
エクセルでも出来るんだけど非常に上級者向けなんです。
上級者でも自分で1から組めない人が多いんじゃないかと思う。

上級者って何?、お前の勝手な分類だろって言われればそうなんだけど。
0033デフォルトの名無しさん (ワッチョイ ffe9-81rD)
垢版 |
2017/11/11(土) 17:24:06.37ID:vmoy6u3Z0
>>28
エクセル アドイン カレンダー
で検索すれば色々見つかるよ
使いやすいもの選べばよろし
0034デフォルトの名無しさん (ワッチョイ 5fb3-4T/N)
垢版 |
2017/11/12(日) 05:18:36.72ID:Dmy+tyrb0
>>28
UserForm使えば簡単に自作できますよ。
年と月用のテキストボックスをつけて、年と月それぞれ増減させるために、スピンドルボタンをつける。
日付表示用のラベルを必要数用意。
年と月のテキストボックスの値に応じて、ラベルの表示を変更。
ラベルのクリックイベントで、年と月のテキストボックスとラベルのテキストを連結して、日付に変換。

ラベルのクリックイベントは、クラスでまとめれば、クリックイベントをたくさん書く必要もありません。
0037デフォルトの名無しさん (ワッチョイ 7feb-hKlY)
垢版 |
2017/11/12(日) 11:17:54.47ID:QqFg5+2e0
>>36
エクスポートできるよ
gitとかsubversionとか使えばいい
0038デフォルトの名無しさん (スップ Sd9f-l+iR)
垢版 |
2017/11/12(日) 11:23:55.96ID:61FaOR6Wd
連投すまんが、セルを方眼紙にして、フォームの中に直線コマンド、円コマンド、角コマンド等CADみたいなそれぞれ押したらそれが、反映されて作画って出来る?
0039デフォルトの名無しさん (ワッチョイ 7feb-hKlY)
垢版 |
2017/11/12(日) 11:28:28.89ID:QqFg5+2e0
>>38
できるかできないかで言うと出来る

各図形の位置に当るセルの背景色を変えれば良いだけ
0040デフォルトの名無しさん (ワッチョイ ffe9-yeIO)
垢版 |
2017/11/12(日) 12:15:44.63ID:chRcmei30
>>36
ブログ作ってそこによく使うコードを置いてある
いつでもどこでも検索すれば出てくるので非常に便利
0041デフォルトの名無しさん (ワッチョイ ffe9-yeIO)
垢版 |
2017/11/12(日) 12:16:32.95ID:chRcmei30
>>38
できるけどかなりめんどくさい
cacooとか既存サービス使った方が良いと思う
0046デフォルトの名無しさん (ワッチョイ 5fb3-4T/N)
垢版 |
2017/11/12(日) 20:02:01.58ID:Dmy+tyrb0
vbのランタイムをインストールすればDateTimePicker使えるけど、Formでカレンダー自作しておけば簡単に使い回したり配布出来るから一個作っておくといいと思いますよ。
0047デフォルトの名無しさん (ワッチョイ 5fbd-vLjR)
垢版 |
2017/11/12(日) 22:30:08.29ID:XHSQB0UC0
フォルダ1
┗XXX29年10月.xlsx
 XXX29年11月.xlsx
 YYY29年10月.xlsx
 YYY29年11月.xlsx
フォルダ2
フォルダN

フォルダ1内に今月のファイルがあったらコピーして名前を翌月に変更して保存
これをフォルダNまで同じように処理する方法教えてください

年月の取得はユーザーフォームが理想ですが全く分らんので
マクロ実行用ファイルのA1に年、A2に月入力して取得する感じを考えてます
0048デフォルトの名無しさん (ワッチョイ 5fb3-Q+Fb)
垢版 |
2017/11/12(日) 23:03:42.29ID:eJwcw8mO0
>>47
今月のファイルを探したいならDate関数使えば今日の日付が出るからそっからformatなりyearとmonthくみあわせるなりで取得すればいいからわざわざ入力させる必要がないね
フォルダないのファイル名の取得ならググればいくらでも出てくるぞ
俺はfilesystemobjectを使うけど
0051デフォルトの名無しさん (ワッチョイ ff9f-wagG)
垢版 |
2017/11/13(月) 00:50:26.46ID:cup53tTa0
どうしてもカレンダー欲しいんだったらSysDateTimePick32使って頑張るだろうな。
面倒くさいけど他のコントロールもMSFormsを使わないウィンドウ作成もやったことある。
きちんとプロパティ作るの面倒くさいから使いたいものしか実装してないけど。
0052デフォルトの名無しさん (ワッチョイ ff9f-wagG)
垢版 |
2017/11/13(月) 00:58:21.51ID:cup53tTa0
>>48
ファイル名取得にfilesystemobjectは激重だった気がする。
Dir関数で頑張る方がよっぽど速い。

これが原因でfilesystemobjectは使わなくなってしまった。
他では速いものもあるのに食わず嫌いになった。
0055デフォルトの名無しさん (スップ Sd9f-Lcj1)
垢版 |
2017/11/13(月) 08:01:19.66ID:4dN82Cnsd
なんか別のものと勘違いしてるんじゃないか
0056デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
垢版 |
2017/11/13(月) 08:26:57.35ID:pr331NCP0
たかがファイル名を取得するのに処理負荷を感じるほど重くなるとか考えられないな。
読み取り先が等速ドライブに突っ込んだCDだったとか、回線の細いNASだったとかなら分かるけど。
0059デフォルトの名無しさん (アウアウカー Sad3-6ii5)
垢版 |
2017/11/13(月) 12:44:49.20ID:U+ZWq00Pa
なんかWindows10でマクロの挙動が安定しなくなったんだけど、そういうのある?
0061デフォルトの名無しさん (ワッチョイ 5fb3-4T/N)
垢版 |
2017/11/13(月) 13:21:12.07ID:ck+reS0/0
vbaでクラス使うメリットあるの?
一応あるインターフェースは使い物にならないし、継承も使えないし、コンストラクタに引数も設定出来ない。
vbaでクラス使うメリット教えて
0063デフォルトの名無しさん (スップ Sd9f-Lcj1)
垢版 |
2017/11/13(月) 13:43:14.72ID:4dN82Cnsd
>>61
たまにある
単体の処理してる間だけじゃなく、しばらくの間は状態を持っててほしいとき
ごく素朴な使い方しか出来ないし、しようとも思わないけど
0065デフォルトの名無しさん (スプッッ Sd7f-lMX+)
垢版 |
2017/11/13(月) 13:52:55.00ID:HKnEhqdPd
そもそもクラスが必要になるほど大規模なコードを書く用途にVBAは向いてない、使うべきじゃない

ちゃんとした開発環境を使え
会社が許可しないなら転職するか我慢するかの二択、あるいは出世して自分で規則を変えろ
仕事の能率がアップして利益が増えるんなら反対する理由はないだろ
0068デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
垢版 |
2017/11/13(月) 16:07:38.26ID:pr331NCP0
クラスを使うとシンプルに表現出来る場合がある。規模の問題では無い。
普通に使ってるとなかなか活用するイメージが湧かないけど、覚えておくと役に立つよ。
0070デフォルトの名無しさん (スップ Sd9f-Lcj1)
垢版 |
2017/11/13(月) 17:09:30.17ID:4dN82Cnsd
>>68
そうだよね

ただ、いちいちクラスモジュールを追加しなきゃならないから、使い捨てクラスをほいほい定義しづらい
0071デフォルトの名無しさん (アウアウカー Sad3-wagG)
垢版 |
2017/11/13(月) 17:20:46.73ID:78YzXPYPa
FileSystemObjectのファイル一覧取得が遅いのなんて結構有名な話だと思うんだが。
ハードディスクにあるファイル名全部取ってくるとかすれば分かる。

昔、どっかに比較してる所が有ったんだが見つからないな。
Win32APIが一番速かったがDirでもそんなに大きな違いは出なかった。
が、FileSystemObjectは糞遅い結果になってた。
そもそも自分で組んだら遅くてネットで調べたらやっぱり遅かったという。
0073デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
垢版 |
2017/11/13(月) 17:47:02.85ID:GJIgK8HXa
>>71
そうなんか
まあ、今んとこそんな大量のファイルのやり取りしたことないから体感したことなかったわ
まあ、その辺使うにしても生で扱うよりクラスでまとめちゃった方が取り回し良さそうだがね
その辺は好みなんだろうけどね
0075デフォルトの名無しさん (ワッチョイ ffe9-ySnM)
垢版 |
2017/11/13(月) 19:08:08.64ID:wM5leOdq0
>>59
bit数の関係で安定しなくなったことはある

>>61
多分、ない
class使ったほうが見通しがよくなる場合はあるけど、
正直そんなに変わらんというか、めんどくさくなるだけの場合が多い気がする
0076デフォルトの名無しさん (ワッチョイ 5f81-2HIz)
垢版 |
2017/11/13(月) 21:36:08.79ID:S878v5EG0
この流れで突然クソみたいな質問するの恐縮なのですが…
共有で使っているExcelのデータの行がランダムに大量に消える現象が起きてます
多分誰かがオートフィルタかけた状態でうっかり削除したんだと思うんですが、
消えた行に全く共通点が無いので「マクロにウイルスが付いたんだ!マクロやめろ!」って因縁付けられています

まずVBAにウイルスを仕込むならともかく、VBAを使用しているせいでウイルスに感染するって無いですよね?
あとこのコードに行を消すような要素があるか見てもらいたいです
オートフィルタをかけるだけの簡単なコードなんで無いと思うんですが周りに誰も聞ける人が居ないので一応…
簡単な指示だけどすごく頻繁に使うので消したくないんです

Sub filter1()
Range("K2").AutoFilter Field:=9, Criteria1:="<>"
Range("L2").AutoFilter Field:=10, Criteria1:=""
Range("O2").AutoFilter Field:=13, Criteria1:="AA"
End Sub

Sub filter2()
Range("K2").AutoFilter Field:=9, Criteria1:="<>"
Range("L2").AutoFilter Field:=10, Criteria1:=""
Range("O2").AutoFilter Field:=13, Criteria1:=""
End Sub

Sub filter3()
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
End Sub
0078デフォルトの名無しさん (ワッチョイ ffe9-Ai73)
垢版 |
2017/11/13(月) 21:45:59.98ID:wM5leOdq0
>>76
ウィルスに感染していて、セキュリティをsageているためにウィルスが実行されているというパターンなら考えられるが
其れ以前の問題として
・オートフィルタをかける
・全体をコピー
・ペースト(値として貼り付けなど)
で行が減っている可能性のほうが高いと思う
この仕様
、意外と知られていないんじゃないかなぁ
0079デフォルトの名無しさん (ワッチョイ 5f81-2HIz)
垢版 |
2017/11/13(月) 22:24:58.44ID:S878v5EG0
>>78
それって別のシートやブックに貼り付けるときに可視セルだけ貼り付けられているという意味ですか?
別のブックやシートにコピーする事は無いと思うので可能性としては低い気がします…
試しにオートフィルタしながら同じシートに貼り付けようとしたら「コピー領域と貼り付け領域が違うため貼付できません」となりました
0080デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
垢版 |
2017/11/13(月) 22:25:14.14ID:GJIgK8HXa
>>76
まあ、自作マクロでウィルスどうこうはあり得ないわ
コード見る限りでも、フィルターかけてるだけで値の操作はしてないしな
まあ、フィルターかけっぱなしにならないようにブッククローズ時にフィルター解除すれば?
0081デフォルトの名無しさん (ワッチョイ ffe9-Ai73)
垢版 |
2017/11/13(月) 22:28:52.42ID:wM5leOdq0
>>79
>それって別のシートやブックに貼り付けるときに可視セルだけ貼り付けられているという意味ですか?
そう
>別のブックやシートにコピーする事は無いと思うので可能性としては低い気がします…
そか

オートフィルタならまずこれかなーと思ったけど、コピーペーストしてないなら違うかな
0083デフォルトの名無しさん (ワッチョイ ffe9-Ai73)
垢版 |
2017/11/13(月) 22:32:36.92ID:wM5leOdq0
実際のコード上げたほうがいいかもねぇ
0084デフォルトの名無しさん (ワッチョイ 5f81-2HIz)
垢版 |
2017/11/13(月) 22:46:30.32ID:S878v5EG0
ありがとうございます
コードがおかしいわけじゃないなら良かったです
一応ここに貼ったコードはAAの部分に別の単語が入ってるだけで他は全て実際に使っているものと同じです
クローズ時にフィルター解除するようにはしてなかったのでやってみます
0087デフォルトの名無しさん (ワッチョイ ff9f-wagG)
垢版 |
2017/11/14(火) 11:29:31.52ID:G7+v7Fl70
ウィルスは簡単に作れるだろ。
リテラシー無い奴が増えたからウィルスとは何ぞ?という議論が必要かも知れんが。
ただ、ExcelよりはAccessとかのが簡単だから大丈夫なんか?と思ったことあるけど。

Application.VBE系のコードが動くようになってれば感染させるのは簡単。
通常、Excelではセキュリティ設定で動かないようにはなってる。
Accessには設定が無い。
WordやPowerPointはどうだったかな。

Application.VBE系ってのはコード書いてるエディタを弄るものでVBAでコードを追加出来る。
つまり自分自身のコードをHDD上の不特定なxlsファイル開いて追加すれば自己増殖出来るし、Auto_Open辺りを追加して次回誰かが開いた時に勝手に実行させることも出来る。
ついでにそのxlsファイルをメールに添付して、アドレス帳の適当な所に送ることも出来る。

少し書ける奴なら分かってるだろうからApplication.VBE系は動かない設定になってるだろう。
Application.VBE系は便利でGithubにアップしたり、VBAのバックアックしたり、コード取得してWinmergeに与えて比較したり色々利用してたけどVB.netのCOMアドインに移行中。
0090デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
垢版 |
2017/11/14(火) 12:38:00.31ID:Tcgv7xMn0
コンピュータウィルスって「操作している人間の意に沿わない動きをするプログラム」だったと思ったんだけど、
いつの間にか定義が変わったのか。

CDトレー開いたりマウスをランダムに動かすジョーク系もウィルスだったはずだから>>76のもウィルスと言っていいと思ったんだが。
0091デフォルトの名無しさん (ササクッテロラ Sp33-hKlY)
垢版 |
2017/11/14(火) 12:42:08.62ID:dN7NjwRxp
>>90
その定義だと世の中のあらゆるソフトはウイルスになるんじゃね

バグはあるからな
AndroidやiOSもウイルスになる
0092デフォルトの名無しさん (ワッチョイ ff9d-QXYS)
垢版 |
2017/11/14(火) 13:07:49.89ID:5gpUPtII0
>>90
その定義だとワームやトロイの木馬とウィルスが区別できないわけだが
いくら今だとより広義に使われるとはいえ
>>いつの間にか定義が変わったのか
はそのままお前に返してやるよ
0093デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
垢版 |
2017/11/14(火) 13:09:39.12ID:Tcgv7xMn0
>>91
バグは確か「論理的に正しくない結果をもたらす何か」みたいな定義だったと思う。
マシン内に虫が侵入して電気的にショートするのが語源だしね。

同じ定義で使い続けるとバグとウィルスがあやふやになるというのは時代の流れだなぁ。
0094デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
垢版 |
2017/11/14(火) 13:16:31.95ID:Tcgv7xMn0
>>92
ワームもトロイの木馬も、元々はコンピュータウィルスを感染させるテクニックというか、
媒介手順だったはずがいつの間にか独立してウィルスの親戚みたいな扱いになってるよなぁ。
0095デフォルトの名無しさん (ワッチョイ ff9d-QXYS)
垢版 |
2017/11/14(火) 14:03:33.75ID:5gpUPtII0
>>94
もともと、「感染」しないものはウィルスじゃない
いつのまにか独立したんじゃなくて、初めからちゃんと別物でちゃんと区別されていたんだが
いつのまにかまとめてウィルスと呼ばれるようになったんだ
今じゃマルウェア全般が広義にウィルスって言われる始末

バグは語源は諸説あるが、作成者の意図にそわない動作
ウィルスは作成者の意図にそった動作するプログラム
いくらなんでもそれを混同しないでくれ
0096デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
垢版 |
2017/11/14(火) 17:57:06.04ID:Tcgv7xMn0
>>95
だからトロイの木馬もワームも単体ではウィルスじゃなかったんだよ。
言うなればコンテナみたいなものなんで、トロイの木馬型のパッチプログラムとかも可能だし。

たぶん想像している「定義づけられた時期」が違うせいで食い違ってるだけだな。
0099デフォルトの名無しさん (スップ Sd9f-Lcj1)
垢版 |
2017/11/15(水) 12:15:18.42ID:l7NNgtZ+d
プログラミングによる業務自動化絶対阻止マンがいて、ウィルスだろうがワームだろうが
題目はなんでもいいから邪魔しようとしている

という妄想をした...
...疲れているようだ
■ このスレッドは過去ログ倉庫に格納されています

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