X



Excel VBA 質問スレ Part50 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 7e6d-ffY6)
垢版 |
2017/08/27(日) 12:40:17.57ID:LjjEWylk0
!extend:checked:vvvvv:1000:512

スレ立ての際は一行目に
!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 質問スレ Part49©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498410914/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0548デフォルトの名無しさん (ワッチョイ a3b3-Ddq2)
垢版 |
2017/10/01(日) 18:29:42.75ID:1isdaW610
あえて無理を承知でVBAでやるのがVBAerの心意気だろがw

VBAの貧弱な仕様に疲れてしばらくC#とPYTHONを勉強していたがそういう言語で作ったアプリを
渡しても誰も使わねえのよ。もう、日本企業では エクセル操作=業務という定義が確立していて他に許せるのは
一太郎ワードアウトルックぐらいなんだよ。窓際社員の作ったPYTHONアプリなんか信用できないんだってよWW

泣けてくるぜ・・・
0551デフォルトの名無しさん (ワッチョイ a3b3-Ddq2)
垢版 |
2017/10/01(日) 19:19:07.34ID:1isdaW610
>>549
スマホとタブレットの普及でPCわからないのがデフォになっちゃったからなぁ。今年4月に入社したT大出のヤツが「マクロ教えて下さい」と
言ってきたんだが内心「どんだけハイレベルな質問されるんだろ」とガクブルしてたらシート関数ですらSUMしか知らないとかそんなレベルだったんで驚いた。
講義でC言語やったそうだけど「さっぱりわからなかった」そうで。こりゃ日本やべえよ
0553デフォルトの名無しさん (ワッチョイ a3b3-Ddq2)
垢版 |
2017/10/01(日) 19:27:45.32ID:1isdaW610
>>550
だってね、PYTHONってのはもう、dotnetやってて「こんなのがあったらいいのに」と考えるモノが全部そろってるんだよ。
俺のやってる仕事はGISなんかも使うんだが、こういうのはもうPYTHONの独壇場で、殆どコード書く必要が無いぐらい出来あいのが
充実してるのよ。EXCELに特化したライブラリもある。全体に動作がモッサリなのが難点なのと、文字コードで頭が禿げそうになる、PYTHON3系なら大丈夫かもだが。
0556デフォルトの名無しさん (ワッチョイ a3b3-Ddq2)
垢版 |
2017/10/01(日) 19:39:46.20ID:1isdaW610
>>555
機械学習なんかで注目されているpythonがイマイチ普及しない理由はコレって言われているぐらいだからね。
0557デフォルトの名無しさん (ワッチョイ 4d8b-6Ovz)
垢版 |
2017/10/01(日) 20:07:01.84ID:l4AEDu2B0
元からハゲのくせに何ちょっと見栄はってんだよw
0559デフォルトの名無しさん (アウアウカー Sad1-3Z7M)
垢版 |
2017/10/01(日) 20:24:19.84ID:GsAXo2mba
>>553
GISって言ったら昔の話だがGoogle Geocoding API使ってVBAで住所→緯度経度取得は簡単に出来たな。
Yahooも出来たと思う。
xml扱えれば誰でもできる。
VBAでの簡単ってのが他言語に比較して不明だが。

ただ、それやって良いかどうかが分からん。
Webに埋め込んだりするのは良いんだろうけど、自分が情報取得する為に使って良いんだろうか。
0561デフォルトの名無しさん (アウアウカー Sad1-3Z7M)
垢版 |
2017/10/01(日) 21:26:28.19ID:GsAXo2mba
>>560
うん、それは知ってた。
けど、それはそれを利用したwebサイトに訪れる人数を意味してると思ってた。

Google Mapとの併用に限り認められるからVBAでの情報収集には認められないんじゃないかな。
0562デフォルトの名無しさん (ブーイモ MMd9-LMkv)
垢版 |
2017/10/02(月) 04:20:33.43ID:kfrAYa2SM
VBA初心者です。
質問させてください。
複数ファイルに同じ文言を自動入力させたいと思いVBAで組み始めました。
ファイルを探し、開くとこまでは出来たのですが、最終行+1が上手く取得できません。
アップロードした画像ファイル(これはネットで拾ったイメージです)のような状態で最終行を取得すると、"261"行目が取得されてしまいます。
取得したいのは"258"行目なのです

どなたかコード毎サンプルを頂けないでしょうか?
よろしくお願いいたします。

https://i.imgur.com/GNoEnCb.jpg
0565デフォルトの名無しさん (ワッチョイ cbc7-LMkv)
垢版 |
2017/10/02(月) 08:16:05.11ID:vqsqdnCg0
>>563
回答ありがとうございます。
9は何の数字でしょうか?

>>564
そんな感じと思います。
ここで取得した最終行+1に別シートで入力した日付、担当者名、備考MSGを貼り付けるプログラムにしたいと思ってます。

ざっくり作ってるのはこんな感じです。

特定フォルダから、○○01.xlmsというファイルを開いて、最終行+1に別シートで入力した日付、担当者名、備考MSGを貼り付け

保存、閉じる

次のファイル○○02.xmlsを開く
ファイル名の数字は増えたり削除されたりするので、○○が含まれたファイルを順次開いていく感じにしようと思います。
0568デフォルトの名無しさん (アウアウカー Sad1-3Z7M)
垢版 |
2017/10/02(月) 10:03:34.20ID:DxKMMk9ba
そりゃ2次方程式の解き方聞いてる最中に"+"の記号って何ですかとか加算って何ですかと言われても困るだろう。
そこが分からなくて何で2次方程式なんだってことになる。
0572デフォルトの名無しさん (ワッチョイ 8573-hrmW)
垢版 |
2017/10/02(月) 10:54:33.73ID:DId0lIUx0
Cellsの引数がわからないんじゃなくて
>>563の例で9列目を指定してるのはなぜ?ということでは
質問者のあげたサンプル画像がI列の最終行 + 1を赤く囲ってたから9列目としたんだろう
0575デフォルトの名無しさん (オイコラミネオ MM2b-pY8a)
垢版 |
2017/10/02(月) 18:10:19.22ID:HNUJs0p8M
VBAでIf〜Thenの後を空行にすると次のElseIfが評価されないということは有るのでしょうか?
具体的には、

If var = 正常値 Then
ElseIf var = 異常値1 Then
(異常値の処理)
ElseIf var = 異常値2 Then
...
End If

のようなコードです。ElseIfがいくつも続くので最初に正常値にマッチしたらすぐに抜けるようにしたいのです。
最初のIfの後にブレークポイントを設定してもすり抜けているようです…
よろしくお願いします。
0577デフォルトの名無しさん (オイコラミネオ MM2b-pY8a)
垢版 |
2017/10/02(月) 18:17:23.60ID:HNUJs0p8M
>>576
ところが同じコードでIf〜の行を削除して二行目をElseIf→Ifに直したところちゃんと動いているようなのです。
最初のIfにマッチしてるということは無い筈なのですが…
0581デフォルトの名無しさん (ワッチョイ 1b9f-IQJU)
垢版 |
2017/10/02(月) 21:21:19.44ID:IbhHl2kC0
>>577
変数が期待通りになっていないんだと思う。
ステップ実行していけば変数がどう変化しているかすぐわかるんだけど
まだデバッグを使いこなせないビギナーさんなら
msgbox var
をいたるところにちりばめて実行して
メッセージボックスで変数の変化をみるという方法があるよ
自分もデバッグ?なにそれ?なころはそうやってた
0583デフォルトの名無しさん (ワッチョイ 6a96-BYga)
垢版 |
2017/10/05(木) 18:21:05.77ID:gtEpGXfw0
win10 64bitでExcel2016使ってるんだけど

最近やたらに、「メモリ不足〜64bit版に〜」的なポップアップ出てフリーズするんだけど
なんかアプデで仕様でも変更したんかな
0584デフォルトの名無しさん (ワッチョイ 4103-r61h)
垢版 |
2017/10/05(木) 23:19:02.08ID:VoC8r++Z0
どんな理由でフリーズする仕様にしなきゃならんのだ
いくらmsさんとは言え濡れ衣にも程がある
0589デフォルトの名無しさん (ワッチョイ 7afe-saRv)
垢版 |
2017/10/10(火) 03:19:47.77ID:Sh5NAJQR0
とあるcsvファイル(測定器の出力でかなり細かい数値データ)があるのですが
この数値をExcelで一部変更して保存すると全体的に数値が勝手に丸まったりしてしまいます…
(変更していない数値も全て)
色々調べたのですがこのあたりは仕様?みたいなのですがなんとかならないものなのでしょうか
0593デフォルトの名無しさん (ワッチョイ 7afe-saRv)
垢版 |
2017/10/10(火) 12:05:43.76ID:Sh5NAJQR0
>>590-592
どうもありがとう、なんとか自己解決しました
ここで聞いたのは、一応一連の処理をVBAでやっていたので…

Excelでは仕様としてcsv保存するにしても細かい数値は勝手に丸めてしまうようでした
1.00001、1.00002…と並んでいる数字もExcel上から上書き保存するとただの1になってしまいます
これはインポートしても同じ事でした
結果として修正するときは数字として扱い、保存する前に全て文字列とすることで解決しました
しかしこれでも数字の丸めを止めさせられるだけで、各所それなりに変更されてしまいます
例えば、1.00000はどうやっても1になってしまいます
あるときには便利な仕様なのかもしれませんが、やっぱり余計と思える方が大きいですね…
どうもお邪魔しました
0595デフォルトの名無しさん (ドコグロ MMc2-Nz6W)
垢版 |
2017/10/10(火) 12:41:07.46ID:zHyIV0/3M
>>593
Excel 2013 の話だが

> 1.00001、1.00002…と並んでいる数字もExcel上から上書き保存するとただの1になってしまいます
再現しない

> 例えば、1.00000はどうやっても1になってしまいます
Excelで書式を設定して上書きすればいいだけ
当然csvには書式は格納されないので書式の設定は毎回必要
0596デフォルトの名無しさん (ワッチョイ b1d5-XSap)
垢版 |
2017/10/10(火) 14:46:41.79ID:4/mxA4vP0
>>593
<csvをExcelで開き、1.00001 と表示されていた場合>
       csv   Excelで開く  csv保存
実データ: 1.00001 → 1.00001 → 1.00001 ←丸められていない
見え方1: 1.00001 → 1.00001 → 1.00001
(Excel2007で開いたときはこのパターンで全桁表示され、丸められることはなかった)

<csvをExcelで開き、1 と表示されていた場合>
       csv   Excelで開く  csv保存
実データ: 1.00001 → 1.00001 → 1 ←丸められた
見え方2: 1.00001 → 1     → 1
(Excel上では正確な値を保持していたが、csv保存時に丸められた)

Excelでcsv保存する場合、見えている通りにcsvに書き出されるから
正しい桁数に書式設定(桁数指定)する必要がある
(Excelのbook形式で保存するなら、丸められることなく正確な値を保存できる)
0597デフォルトの名無しさん (ワッチョイ 7afe-saRv)
垢版 |
2017/10/10(火) 15:46:51.35ID:Sh5NAJQR0
>>595-596
どうもありがとう
CSVを普通にExcelで開いた時点での表示形式は指数になってます
この時点ではある意味見た目上も全桁数表示されてるのですが
csv保存するときに自動的に普通の数値に変換して更に丸めてしまうみたいです
よくわからないのは0.00001は丸められないけど1.000001は1に丸められます
Excelのバージョンは2016です

いずれにしろ表示形式を変えることで対処するしかなさそうですね
とりあえず文字列にしてしまえば全て保存できるようで何よりです
確かにxlms形式なら全て保存できるみたいなのですが
測定器がcsvで吐き出すことを前提に色々と組んでしまっているので…
0601デフォルトの名無しさん (アークセー Sx75-CSH4)
垢版 |
2017/10/10(火) 16:10:44.15ID:f04ktCAUx
Outlookで指定したメールのtoアドレスとccアドレスをエクセルに書き込みたいのですが、itam.TOとCCにすると名前が書き込まれてしまいました。そこでTOをやめてitam.SenderEmailAddressにしたらアドレスが入ったのですがCCは見つけられませんでした。
分かる方、お言えてもらえませんか?
0603デフォルトの名無しさん (ワッチョイ 1aa4-Ko7M)
垢版 |
2017/10/10(火) 19:18:52.42ID:Gdc/ZOOr0
会社で「顧客名簿のDBから吐き出したCSVをエクセルで編集して又システムに
戻したいんだけど遅いくて困ってる」と言われて「エクセルじゃなく専用エディタでやれよ」
と言ったら「勝手にフリーソフトをインストールできない」と言う。つまり、泣き付けばマクロで作ってくれると思ったんだろうな。

冗談じゃねえと思ったが興味本位でネット漁って作ってやったよ。礼の一言もなんも無しだが、何も言ってこないから普通に使えてるんかな。
CSVをエクセルに食わせるのはQueryTableが一番?速いみたいね。データ型も指定できるし。保存は保存するディレクトリにブックをコピーして
書き出すとまあまあ速かった。と言ってもせいぜい30000件程度(会社規模が知れるw)だからあんま参考にならないかもだが。
0605デフォルトの名無しさん (ドコグロ MMc2-Nz6W)
垢版 |
2017/10/10(火) 19:45:55.99ID:zHyIV0/3M
>>597
> CSVを普通にExcelで開いた時点での表示形式は指数になってます
なら初めからそう書いてくれ

> この時点ではある意味見た目上も全桁数表示されてるのですが
本当になってる?
Excel 2013 だから動作が違うのかも知れんが 1.23456789E+00 を読み込むと 1.23E+00 になる

> csv保存するときに自動的に普通の数値に変換して更に丸めてしまうみたいです
指数表示は全桁読み込んでるけど表示上の有効桁を3桁に決め打ちしているように見える
なのでそのまま保存すると3桁分に丸められてしまう

> よくわからないのは0.00001は丸められないけど1.000001は1に丸められます
それ指数表示でどうなってるかを見ればわかると思うが...
って言うか指数表示の意味わかってないのか?
0610デフォルトの名無しさん (ワッチョイ 7d60-25LY)
垢版 |
2017/10/11(水) 00:24:10.90ID:8tv9PUwe0
>>603
まさに神
0617デフォルトの名無しさん (ワッチョイ daeb-GMdf)
垢版 |
2017/10/11(水) 21:45:50.25ID:0mVU1QGV0
>>612
業務で作ったソフトは会社のもの
0619デフォルトの名無しさん (ワッチョイ d1e3-HnJS)
垢版 |
2017/10/12(木) 03:28:06.76ID:bkFDlrr00
企業だと、Excelは書類扱いやな
マクロも同じ(Excelを加工するExcelファイルという扱い)
「Excelマクロ禁止」って書いてない企業ならまぁ合法かもな(VBSはええんやで)
0627デフォルトの名無しさん (ササクッテロロ Sp45-97Ee)
垢版 |
2017/10/12(木) 12:56:55.18ID:+aWFVLPap
フリーソフトを禁止している理由として
著作権とかライセンス関係の理由なのか
ウイルスとかセキュリティ関係の理由なのか
それ以外か
複合的な理由かによるんじゃね

会社で作ったのなら著作権は問題ないだろう
ウイルスは問題無いけどセキュリティホール的な問題がある場合もありうるかなぁ
0629デフォルトの名無しさん (ワッチョイ 53fe-Zccp)
垢版 |
2017/10/12(木) 15:46:25.11ID:+VeyGWZM0
うちのお客の社員用PCでは拡張子exeのファイルは起動できない
そしてインストール権限を認めてないのでインストーラーを起動できない
この辺が必要な場合は上司を介して情報システム部に許可をとる必要がある

まぁOfficeと社内用ツール以外は使うなよって感じ
ちなみにVBAには特に制限とかかかってない様子
0630デフォルトの名無しさん (オイコラミネオ MM8b-2LZo)
垢版 |
2017/10/12(木) 17:41:48.83ID:b/XoeLt7M
CSVの行頭と,の後に'を挿入してから開いたらいいのでは?
文字列化して良ければの話だけど
0631デフォルトの名無しさん (ワッチョイ 09b3-97Ee)
垢版 |
2017/10/12(木) 18:04:04.30ID:I2SSXy8u0
>>628
オープンソースでもライセンスはいろいろ

オープンソースなら商用利用も可能とは言い切れない
0634デフォルトの名無しさん (ワッチョイ 13eb-97Ee)
垢版 |
2017/10/12(木) 19:09:55.75ID:LSdt7/hd0
>>632
会社で作ったのなら言語に依らずフリーソフトにはならないんじゃね?

自宅とかで作ったのなら従業員かどうか関係なく一般のソフトと同じ扱いだと思う

実行ファイルを書き換えた結果
会社に損害を与えたら懲戒処分とか損害賠償とかの可能性もあるんじゃね?
悪意の程度とかいろいろ関係しそう
0636デフォルトの名無しさん (ワッチョイ 01f7-AvbY)
垢版 |
2017/10/12(木) 19:52:02.88ID:jk5hMeLi0
そういう時に必要な要件は、責任の所在を明確に出来るかどうか
マクロでトラブルが起きると、作ったやつが悪いか使ったやつが悪いか、みたいな面倒な話になって、ヘタすると業務が止まって
マクロで得られた時間の短縮という恩恵以上の損失が出る可能性があるというか、禁止してる所は過去に苦い経験が
あることがほとんど

例外を認めるのもこれまた面倒だから一律禁止にしてる所も多い
会社がある程度の規模になると、本当に小回りがきかなくなるんだよ
Windowsの壁紙の変更すら認められない、みたいな職場も見てきたから
0637デフォルトの名無しさん (ワッチョイ 13eb-97Ee)
垢版 |
2017/10/12(木) 20:37:36.71ID:LSdt7/hd0
>>635
実行ファイルを書き換えてはダメとは書いてないんだが
結果とか必要性とかいろいろ関係しそうと言う意味

別の手段で実現できることをわざわざその手段を使う必要があるかとか、結果の程度とか

会社に損害を与えたら懲戒処分になる可能性があるのはどんな業務でも同じ
0639デフォルトの名無しさん (アウアウカー Sad5-EduE)
垢版 |
2017/10/12(木) 21:09:46.58ID:nSOq2nGha
そもそも、VBA込みの仕事が殆どじゃないの?
フリーソフトは許可が必要だろうけどVBAについては最初から込みの話であって、駄目なら最初からそういう指示がある筈だ。

フリーソフトは駄目だからVBAで同じ機能を実現すれば良い。
どうしても必要だけどVBAで作るのが難しいなら上司を説得するか有料のソフト買って貰うしかない。
0641デフォルトの名無しさん (ワッチョイ 13b9-b/Cf)
垢版 |
2017/10/13(金) 01:03:16.23ID:bhKH08Ce0
VBAでテトリスとかロックマンが作れるなんで知らなかったわ
というか感動した。

それを実装するのに特別な環境が必要だと思ってたけど、VBAだけで実現できるところがすごい
0648デフォルトの名無しさん (ワッチョイ 11b9-89ZN)
垢版 |
2017/10/13(金) 12:13:04.97ID:fnGHp6s50
本来は未認可のプログラム関連全面禁止のところVBAが抜け道的に使われているだけって場合が多いだろうから、
他のプログラムを使ってはならないのは何故かっていう疑問に合理的な回答は無いだろうなぁ。
■ このスレッドは過去ログ倉庫に格納されています

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