TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
Visual Studio 2019 Part2
nim
テストを書いてからリファクタリングなんてのは幻想
ハッシュ使うのやめてクラスにしましょう
JAVAってこんなことも出来ないの?
おまいらのプログラムの勉強の仕方を教えろください
Java低速GUI Swing 10
Win32API質問箱 Build125
2chの荒らし報告の書式対応のプログラム
Rust Part7

Excel VBA 質問スレ Part54


1 :2018/05/26 〜 最終レス :2018/07/14
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


最近プロによる書き込みが多々見うけられますが
彼らに絡むと話がこじれるので質問したい方は適当にスルーしてください


※前スレ
Excel VBA 質問スレ Part53
http://mevius.2ch.sc/test/read.cgi/tech/1524823358/

2 :
>>1


3 :
データ数が違う2組のデータがあったとして、
それを1つのグラフに表示させたいのですが、
x軸が合わなくて困っています
調べても解決できませんでした
よろしくお願いします
https://ideone.com/9Dphe3

4 :
>>3
すみません
もしかしたら自己解決しそうかもです
1番目のグラフの種類をxlXYScatter
に変えたらx軸が合いました
でも、どちらもxlLinesの場合や
2番目のデータだけxlXYScatterの場合は
x軸が合いません
なぜなのでしょうか?

5 :
>>4
すみません
やっぱり嘘です
xlLineに変えても

6 :
>>4
すみません
やっぱり嘘です
xlLineに変えてもx軸は合いませんでした
なぜなのでしょうか?

7 :
>>6
深呼吸

8 :
初っ端からワロタ

9 :
すみません、落ち着いてまたやってみたら自己解決しました
いろいろ変えてみたのですが、多分
xlLine→xlXYScatterLinesNoMarkers
に変更したのが一番効いたのだと思います
xlLineだと.AxesのMinimumScaleや
MaximumScaleが正しく動かなかったのですが、
xlXYScatterLinesNoMarkersに変えたら
それも正しく動くようになりました

よくよく考えてみればxlLineは月ごとの変化を見るときに
よく使ったりするやつですよね
今回のデータは散布図系のやつを使うのが適切でした・・・
https://ideone.com/WrXahz

10 :
>>9
まさか散布図はX,Yがあるけど、それ以外のグラフはYしかないっていうエクセル仕様が分かってないなんてオチかなぁ
と思って確認しようとしてたら先に自己解決してたか、まあ良かった

今回の例では、散布図以外のグラフでは、Xだと思っているのは数値ではなく、単なるY要素ごとのラベルでしかない
この場合、横軸はXデータの数値によらず等間隔に並んでしまっているはず
XY型のデータには散布図以外使えないと思った方が良い
Xが等間隔に並ぶ場合のみ、なんちゃってで使えるけども

まあ、散布図っていう名称のせいで、自分の用途には使えないと勘違いするグラフ初心者は多い

11 :
エクセルで散布図って呼ばれているものが本来のグラフで、それ以外のはただのポンチ絵()だと思うんだけど、
ずっと散布図って名前なので憤りを隠せない

12 :
シャチョーサンスケベネ

13 :
>>10
ありがとうございます
まさにおっしゃる通りでその仕様知りませんでした
横軸が等間隔に並んでいてなんでかな〜と疑問に思ってたのですが、
なぜそうなってしまうのかその説明でやっと理解できました

14 :
ほんまに深呼吸したら解決しとる。可愛いなぁw

15 :
元号どうなるん?

16 :
西暦に変わるよ


いや、性歴に変わるよ(´Д`)

17 :
既存の全文字コード&フォントのアップデートで商売になるな

18 :
excelVBAスタンダードの資格って社会的に評価されるもんなの?
試しに見てみたら思いのほか簡単に出来そうだったから受けてみようかと思ってる
「エクセルが使える」って言葉の1つの裏付けになるかなって

19 :
オフィス系の資格は就職後に評価されることは無い
無職か派遣なら無いよりはマシ
会社としては雇うか迷う時に資格や経験を参考にする

しかし履歴書の資格とか経験は嘘ばっかりで役に立たない奴がマジ多いので
あんまり信用してないが、中には本当の奴もいるので
そういうのは面接とかでアピールする方が上手くいったり

そもそもVBAなんて資格なんてなくても使える奴は普通に多い

20 :
言っとくがエクセルは相当使えん奴でも強制的に一日中使わされるから
優秀な奴ならVBAは自然と使えるようになるのを会社も分かってる
もし学生なら別のスキルを磨け
多分英語系なら引っ張りだこ

21 :
社会では>>20のようなアドバイスしたがりのバカが一番使えません

22 :
なにかを犠牲にする訳じゃないんだからやってみるのが一番

23 :
世間一般のエクセル使えますの評価ってだいぶ低いと思うけど
ぶいびーえー?ってのがほとんどだよ

24 :
Excelは社会人の基本ですからね。
名前が書けるのと同じ、当然のことなんですよ。
逆に、Excelに馴染みがないのは、名前が書けないのと同じです。

25 :
>>21
いちいち相手するなよ ...

26 :
>>18
持ってるけど評価されてるのか微妙
まぁ持ってて損はしてないと思う

27 :
持てるだけの能力を身につけることが大切なのでは
それが身についていれば自信を持って使えると言えそう

28 :
まあ IT Passport や FE のレベルだと持ってたからといって効力はほとんどない。
知識自体はもちろん有用。

29 :
VBAを自在に操れる人って凄いと思うんだけれど
Cやパイソンやジャバや色々やってる人から言わせると
VBAは、なぁ(笑)ってなるのは何で?

VBAだって小規模の開発はできるんだし
立派な言語だって思うんだけれど

30 :
>>29
なんでCをカタカナで言わんの?
(´・ω・`)b

31 :
>>29
多分VBAを自在に操れる人は他の言語も使えるからなw
それを踏まえて(笑)なんじゃないか?

32 :
>>29
ママチャリを小馬鹿にするロードレーサーのような気持ちかな

33 :
30年以上前に、初心者はBASIC、ベテランはCという流れがあって、いまだにそのイメージを引きずってる老害の可能性
今ならVB.Netで問題なく開発できてパフォーマンスも大差ないのに下に見てるのは間違いなく老害

34 :
どうみても老害に憧れを抱くゆとりの仕業やろw

35 :
>>33
VBAとVB.netは全くの別物なんだけどね

36 :
老害の特徴

・マルチプロセス/スレッドを嫌う
・string 型を嫌う
・スクリプトを嫌う

37 :
>>33
ちょっとBasicに夢見すぎだと思う
Microsoftですらもう興味ほぼゼロのVB.NET
VB.NETから見ても超絶時代遅れVB6
VB6から見てもオモチャのようなVBA

38 :
>>35
すまん
はしょりすぎて伝わってない可能性

VBAはExcelのオマケだし実行速度は遅いし扱えるメモリも小さいしライブラリも貧弱なのは確かだから、
下に見られてもしょうがないけど、用途を限定すれば実用十分な性能を持っている
だから、無条件にVBAを見下してるのは老害の「可能性」がある

逆にVB.netはC#と同等の内部処理を行っているので、これを見下しているのは間違いなく老害と「断定」できる

39 :
//でショートカットキー表示されるの今日知った

40 :
同じランタイムで動く、ILで同等だから言語的にも同じステージにいるんだというのは乱暴すぎるな
最近のC#のモダン化には構文レベルでの利便性向上が数多く含まれる
野暮ったい文法のVB.NETがこれに追いつくのは難しい
というか最近はC#に対してVB.NETは機能面でも実装が追いついてない
もはや構文以外は同等とすら言いづらくなってきている
この辺りはMicrosoftとコミュミティのやる気のなさが露骨だね

41 :
言語そのものよりもそれを使う連中が嫌われてる
成立上VB6から移行してくる人が多いから、OOPな書き方ができないstaticおじさんみたいのが多いんだよ

42 :
Visual Studioの中だけで言えば、構文解析エンジンを何種類も保守する意味がだいぶ薄れてきた
そろそろ1本に絞ってもいい頃だろうとは思うがBASICやFORTRAN勢はやっぱり抵抗するのかな

43 :
今からVBAを覚える必要は全くない
違う言語をやった方が1億倍幸せになれる
こーいうとエクセルしか使えない環境の人ガーーーっていう奴がいるけど
そんなキャリアアップが出来ないようなクソ会社で時間を浪費するのはエンジニアとして失格
プログラマーとして合理的な思考をしよーな
今時エクセルなんてメモ帳程度だよ
普通はもっと便利な専用アプリ使ってるから今のクソ会社に騙されないでね

44 :
エンジニア前提なの?

45 :
Excelは忖度エンジンなので、あれを超えるものは現れないのでは?

46 :
>>43
> 普通はもっと便利な専用アプリ使ってる
具体例出せない時点で無職の妄想やね

47 :
どうせ会社では使えないし使わせてくれないし → まちがい
自宅で好きな環境作ってたくさん覚えて転職 → せいかい

48 :
桁揃えとか連番とかにExcel使ってますよ私は。
B1に「=A1&REPT(" ", 10-LEN(A1))」を入れて、ピューっとドラッグするわけですよ。
B30までドラッグすると、A1の部分がA1〜A30まで勝手に変化して埋まりますからね。
これは並みの忖度じゃないですよ。

49 :
プログラマこそExcel使うべきですよ。
そんなちまちまIDEの拡張書いてるよりずっと早いですから。

50 :
VBAなんて無価値なので転職で有利にやるわけ無い

51 :
いやいや、これ使えるのと使えないのではずいぶん差が付きますよ。
たとえば、見積もりシートなんてどこにでもあると思いますが、結局、利益は見積もりで決まるわけじゃないですか。
見積もりシートをいじれるのといじれないのでは、幹部と下っ端の違いが生まれるわけですよこれ。
いじれる人が考えたパラメーターでいじれない人は入力するだけなわけですから、いじれなかったら結局事務の女とやることが変わらないわけですよね。
絶対覚えた方がいいですよ。

52 :
もうね、Excel使えなかったら社会人として終わってますから。
社会人の基本ですからねこれ。

53 :
Excelの使いこなしだけでも、年収200万くらいは変わるんじゃないですか?

54 :
見積もりとか今時Webアプリで共有出来るようにしてるだろ
なんでエクセルでやるの?

55 :
>>54
ウェブアプリで共有してたら他社と横並びだからに決まってるじゃないですか。
そんな当たり前のこと聞いてからかってるんですか?

56 :
利益は見積もりで決まる。
見積もりシートは門外不出。
あたりまえですよね?

57 :
電話は3秒以内にとる。
見積もり依頼は一時間以内に返事する。
簡単なルールですから必ず守ってください。

58 :
社内共有に決まっとるだろ

59 :
社内共有ならExcelでいいじゃないですか。
そもそも、外に出せないノウハウを自分で書けるのがExcelの良いところなんですよ。
なぜ経営者がExcelっ子を優遇するのか。
それはノウハウの漏洩を恐れるからなんです。

60 :
Excel使えない時点で人間として駄目ですからねこれ。
結婚するときはExcel使えるかどうか、本当に使いこなせているかどうか、ちゃんと確かめた方が良いですよ。

61 :
エクセルファイルって同時接続出来るの?
社外からもエクセルファイルにアクセスして確認とか出来るの?
外にいる人にも同時に見れるの?
もしかして今のエクセルはそーなのかね

62 :
>ID:lUyHhYKP
平日昼間に連投
終わってるのはあなた

63 :
>>50
職種によるとしか言えない

64 :
時々、無闇矢鱈にExcelを憎悪する(笑9人間が出没するな ww
何かあったんか?とききたくなるわw

65 :
>>61
今のオフィスはそうなんですよ。

66 :
というかWindows自体、異なるデバイス間でドキュメント共有しますからね。
いずれWindowsは無料になるんじゃないかと思います。

67 :
オフィスの再インストールもプロダクションキーがいらなくなってたり、最近は結構変わってきてます。

68 :
ニートエクセラーさん暇そうで羨ましい

69 :
>>68
時間というものは他人が作ってくれるものじゃないんですよね。
自分で作らないといけない。
そこでExcelなんですよ。

70 :
他人に神エクセルとスパゲティVBAを強要して相対的に時間的優位に立つ

71 :
Redmineを使いだしてからエクセルの価値が減った
ブラウザで情報共有するのが基本形になるとダウンロードしてファイルを開くまで時間がかかるエクセルは自然とNGになる

72 :
>>71
エクセルなんて時代遅れだよな
Webブラウザで共有が一番
端末も選ばないし

73 :
>>72
時代遅れではないかな
ただ適材適所ということ
エクセルにはエクセルの得意なシーンがある
小規模な表形式のデータ編集をするならエクセルが最適だと思う
逆にスクリプティング、ドキュメンテーション、情報共有にエクセルを使うのは無理がある

74 :
>>71
いやいやいやいや、ダウンロードとかいつの時代の話してるんですか。

75 :
>>72
Excelも端末選びませんが?

76 :
>>71
Redmime?
Excel の使い方間違えてるだけじゃね?

77 :
>>76
そのとおり
使い方を間違えてる人が多すぎる
正しくツールを選定して本当にエクセルでやるべきことをエクセルでやるようにするとエクセルの出番がどんどん減っていく

78 :
そもそもニートにエクセルいらんからなw

79 :
ホントにExcelが無くなってシステムから必要な資料が一発で出てきてくれたら助かるけど、そんなの聞いたことない。
あるなら教えてほしい。

80 :
>>79
オープンソースの全文検索エンジン使っちゃいなヨ

81 :
XP時代の人みたいだな。
Excelが起動したいならコルタナさんにエクセルと言えばいいだけだし、何かを探したいならコルタナさんに言えばいいだけだろ。
オープンソースの検索エンジンとか、セットアップしてるだけで時間の無駄。

82 :
コルタナって全社の膨大なドキュメントから一瞬でほしいもん見つけてくれんの?

83 :
>>82
もしかして、エクスプローラも使ったことないんじゃないのか。
共有ってボタンあるだろ。
何のためにあると思ってんの。

84 :
あと呼び捨てやめてくれる?
コルタナさんはちゃんとさん付けで呼んでよね。

85 :
>>83
フォルダ共有のエクセル開くのとんでもなく遅いんだけど?
あんな遅いの我慢してたらストレスで禿げるよ

86 :
XP時代で止まってるんだろ。
まあいいから使ってみ。

87 :
win10だけどガッカリ性能だったわ
当たり前だけどただのデスクトップOSが全文検索サービスに勝てるわけなかったんだよね

88 :
>>87
いやいやいやいや、使ってたらフォルダ共有とか言い出さないだろ。

89 :
使ってるんだったら、コルタナさんにナタルコって言ってみ?

90 :
何も知らない私が、3年間java頑張ったら
このスレで、あなた方と会話できるようになれますか?

91 :
VBAでの記述について質問です

関数が入っているセルがあり、計算されると関数を抜いてに値のみにしたいのです。
処理の数が多く、値のみ貼り付けでは追い付かない状況です。

VBA初心者で調べてもわからず困っています。
コードをご教授ください。

92 :
>>91
セルの左上の▽のクリック(要は全シート選択)して
右クリックでコピー

新しいシートを開いて、
右クリックして、
貼り付けのオプションで
値のみを貼り付け(123のアイコンね)

じゃあかんの?
ちな2013

93 :
ひとまずマクロ記録してみようや

94 :
>>91
コードを求める前に、手動の場合(VBA使わない場合)はどう操作する作業なのかもう少し具体的に書こうや
>>92と同じことをブック内の全シートに対して適用したいの?

95 :
range.Value = range.Value

96 :
>>91
なんでそんなことするの?
また神エクセル?

97 :
質問です。
オートフィルタが設定されている表を別シートにコピーしたいと思ってます。
しかしコピーするのはフィルタで非表示なっている行も含めて全てコピーしたいのですが、

98 :
非表示行がコピーされません。
フィルタはユーザーの設定のままにしてあげたいのでフィルタ解除して
コピーという方法以外で解決する方法はありませんでしょうか。

99 :
結果だけを人に渡したい需要は世界中に存在する
勝手にいじられると困るとか計算式を知られたくないとか

100 :
Ctrl+A

Ctrl+A

Ctrl+C

右クリック

形式を選択して貼り付け



101 :
まあPDF化すればいいんですけどね

102 :
foreach、cells.copy、special pasteで適当にすれば?

103 :
・・・まあいいか

104 :
エクセルってめんどくせえなあ

105 :
エクセルサーガ

106 :
>>91
入力データは、、手入力するわけだよね

107 :
>>104
だから、君は無理してExcel使わなくてよろしいがな。嫌いなんだろ?

108 :
Excelもマクロも嫌いだけど仕事だから仕方なく使ってる
親のコネでやっと入ったバイトだからやめるわけにもいかない
2chに愚痴を書き続けるしかない人生

109 :
エクセル嫌いって意訳するとバカだよ?

110 :
>>107
集団で働く以上は嫌でも周りの風習・伝統に合わせないとネ
チームや客がエクセルを使ってたらエクセルを使わざるをえないだろう
マネージャさんや手動テスト要員のアルバイタなど関係者がみんなITのプロとは限らないのでこれは仕方がない
もちろん個人端末にはエクセルをインストールすらしてない(というかそもそもLinux)
オープンソースやプライベートのプロジェクトでエクセルを使う理由は全くないからネ

111 :
オープンソースやプライベートのプロジェクトがないやんwバカw

112 :
非表示行はコピーできました。
すいません。フィルタで表示されてない行もコピーしたいんです。
ぐぐっても出てこないしVBAじゃ出来ない感じですかね。

113 :
>>110
Excelをバッスィーンと窓から放り投げ、貴様らのような雑魚と一緒に仕事はできん!、颯爽とLinuxの国へ向かうというのはどうか。

114 :
表やリストから抽出したデータを加工してソースの一部にするのは良くありがちなので、プログラマこそExcel使いこなすべきだと思うけどなあ。
その表がExcelならもちろん、HTMLのテーブルであっても容易に取り込めるのがExcelの良いところなわけで。

115 :
昔よくExcelは雑魚の道具、真のプログラマはSedとAwkを使う!とか言ってる人いたけどさ。
そんなものこねくり回してる暇あったら、Excel使ってマウスでちょちょいとやれば済むことなんだよね。
やったことの過程がシートに残る、結果ももちろん残る、すべて残る、そして渡せる。
これはとても素晴らしいことなのです。

116 :
>>114
テーブルデータはcsvか次点でjsonあたりでいいよ
ベンダロック強いエクセルはプログラマには合わない

117 :
>>115
ソースデータとコマンドがテキストで全部残ってバージョンコントロールできる方が良いだろ

つか渡せるのはエクセル関係なくね?
エクセル以外は転送禁止的な規約があるのかな

118 :
そりゃExcelを使ったことのない人の感想だわ。
使ってて使いづらいというのはわかるんだけど、使ったことないけど使いづらいって人が多くて困るわ。

119 :
俺はソースツリーに.oneと.xlsxを含めてる。

120 :
日常的な繰り返し作業ならシェル開いてコマンド打った方が楽なんだよな
たとえばだけど表形式のデータからgetterをコード生成したいなぁって思ったら
import-csv -path "props.csv" | % {
"public $($_.Type) get$($_.Name)() { return $($_.Name); }" }
って1行打つだけじゃん?
エクセルだとキーボードとマウスでガチャガチャやらんといかんしデータもcsvからシートにインポートしなきゃならん
めんどくさすぎ

121 :
csv作るまでの過程で、Excel組は帰ってるんじゃ?

122 :
>>120
psのcsv読み込みは#混ざってるとデータ消えるって本スレでやってるじゃん
1行どころか使い物にならない

123 :
>>122
確かにそれは意味不明な仕様だけど実用上困る事はないよ
import-csvは#あっても消えないし
catからConvertFrom-Csvに繋げたいならrawオプションをつければいい
任意のコマンド結果をConvertFrom-Csvに繋げたいならOut-Stringを挟めばいい
エクセルで作業する忍耐力があるならカンタンだな

124 :
なにかいい入門書を教えてください
入門者のexcel vbaという本は、簡単でしたので、次のステージに行きたいです

125 :
VBAなんか本いらん。ネット情報だけで充分過ぎる
とにかく色々かけ。そして作れ

126 :
>>125
レスありがとうございます
満員電車電車移動中に勉強したいので、本がいいのですよね

127 :
オープンソースソフトのコードでも読めばいい

128 :
>>122
このスレで他ツールのCSVの取り扱いにケチつけるとかギャグか何か?
世界で一番CSVぶっ壊してるの間違いなくExcelだぞ

129 :
    A
1 2018/04/23
2 2018/04/25
3 2018/05/10
4 2018/05/28
5 2018/06/03←今日

のようなデータがあるとき、昨日以前で直近の日付のある行を取得したい場合のコードを教えていただけませんでしょうか?上の例の場合、4行目となります。

130 :
countaで最大値を取って-1した行を取れば良いんじゃないか?

131 :
>>130さんお返事ありがとうございます。
ただ、それだと5行目がない場合に3行目が返されてしまいますよね。今日の値があるなしに関わらず昨日以前の値がほしいのです。

132 :
>>131
行数を取得したいのか、それとも値(シリアル値)を取得したいのか。
日付データは当然、昇順ですよね?

133 :
グラフの判例項目を足したり削除したりしたいのだがムズイ
マクロの記録で録ったのを流用してもうまくいかない時があって難儀してるわ

134 :
>>129
これは普通にmatchでいけるよね。
バイナリサーチモードで。

135 :
>>132
何行目にあるのかを知りたいのです。
昇順です。

136 :
>>135
r = Cells(Rows.Count, 1).End(xlUp).Row
If Cells(r, 1) = DateValue(Date) Then r = r - 1

137 :
>>136
ニホンゴムズカシイネ^^
VBAよりまず読解力

138 :
もうすぐ廃止されるかもしれんVBAを本気で覚えようとするモチベが湧かないわ

139 :
元々本気でやるようなもんじゃないし

140 :
本当ならめでたいことだが
VBA廃止ってどこ情報だよ

141 :
C#になるんだろ?

142 :
Pythonがどーたらって噂のことだろ?

143 :
python使いたいならLibreOffice使えば?

144 :
>>143
お前が顧客提案資料作れや

145 :
>>135

dim i as integer
i=1
do
i=i+1
loop while cells(i,1) < date
msgbox i-1

エラー処理とからは無しだけど。

146 :
最終的にPDFにして送るんだからExcelにこだわる意味って…

147 :
年賀状やチラシ作りに便利だから。

148 :
昔の職人さんが包丁一本で生きていけたように、今はExcel一本あれば世界中どこでも生きていけるからな。

149 :
>>148
1行目に入ってる項目名がスワヒリ語だったとしても?

150 :
オブジェクト指向追加すればそれでいいよ

151 :
フォルダ内にあるファイルがそれぞれどんな中身なのか、一つづつプレビューか開くかしないと判らず死にそう

1つずつ開いてスクリーンショット取らせるようにマクロ組んでみたけど、タイミング、ウインドウ表示の問題で上手く回収出来ないみたい

152 :
何でもかんでも1つのブックに詰め込むからそれが何のためのブックなのか曖昧になる
そうなると適切なブック名を付けられなくなって中身が分からなくなるしエクスプローラーで見たときの検索性も低くなる

そしてエクセル使いはファイル数が少ない方が良いと言ってシートを増やしまくる傾向がある
チームでエクセルを使うならこのストレスには耐えるしかない
民主主義では数が多い方が正義だからね

153 :
エクセルは、データとスクリプトを分離しろ。

154 :
今でもデータを別ファイルでもDBにしてもアクセス出来るじゃん

155 :
出来る。のと、そうなっている。の違いは大きいよな。

156 :
だからそうすればいいじゃんって事

157 :
馬鹿が使えは何でも無茶苦茶になる

158 :
どこで聞いたら良いのかわからないのでここで…
4Kモニタ買ってDPIいじったらExcelのオートシェイプが歪んで印刷されるようになりました
この歪み具合というか補正係数みたいなのを導き出す方法ってありますか?

159 :
縦にズラーっと1000以上データが入ってて
5回以上同じ値が連続するセルを色づけするvbaを作って貰えませんか?
入力ごとに自動実行してくれるとなおありがたいです

160 :
>>159
Rよ

161 :
>>159
失せな

162 :
〜〜が出来ずに困っています、何かヒントをいただけたら有り難いのですが

と言ったら別に頭にこないだろ。作ってもらえませんかと言われただけでRとか失せろと言うのは、
表現だけに拘った愚かな対応だな。

163 :
すいません端折りすぎました
ほとんど自力で作成はできてるのですが、
判定させるほぼ全てのセルに計算式が入っていて、見かけ上は空白セルでも計算式の入ってる所は全て同じ値判定になって困っているのと
自動実行のやり方が分からないといった感じです

164 :
>>163
ランサーズとかに発注したら

165 :
質問の仕方を間違えたみたいで申し訳ありません
自分のレスは忘れてください
スレ汚し済みませんでした

166 :
>>159
http://www9.plala.or.jp/siouxsie/excel/date06.html

167 :
>>166
これはネタなのか?文字化けなのか?

168 :
すげぇ 片手に余るレスでお客さん追い返してやんの
桜井佐那(戸田恵梨香)が来る前の崖っぷちホテルか
>>161 がくっきー(野生爆弾)の顔で睨んだとイメージ

169 :
>>159
作りかけのファイルアップしてくれたら何とかできるかも。

イベントの条件など、その人にしか分からないことが多いから自分でコード書くのが一番いいんだけど。例えばA列限定なのか、A列からJ列なのか、全ての列なのかでコードは変わってくるでしょう?
データも、縦方向に連続しているのか空白があるのか、空白が5行続いた場合どうするのか、空白と0を区別するのか、などなど。

あと、ここよりエクセル総合質問スレの方が親切な気がする。

170 :
つーかそんだけ条件はっきりしてんならちょっと考えたらわかるやろ。しかもほとんど自力でって言ってんだし

171 :
>>163
見かけ上は空白セルということは実際の値は何でしょうか、例えば文字列""であるとか。
自動実行は>>166のURLが分かりやすいですが、もし文字化けしているのならばWorkSheet changeで調べると良いかと思います。

172 :
>>167の意味がわからない
うちでは>>166のリンク先は普通に見えてるけど、文字化けして読めない環境の人もいるってこと?

173 :
質問
再利用性高いプログラム書いたとしてそれをどこに保存してどう活用するの。
例えば〇〇出来るマクロ作れ!言われてファイル開く部分は前作ったsubプロシージャで良いなと思っても今は前のソースからコピペしてる
クソなことしてる自覚はあるけどどうすればクソ脱却するか分からん

174 :
>>172
MIMEの文字コード種別の記述と実際の文字コードが違うとかあると、ブラウザによっては文字化けするよ。

175 :
>>172
lPhoneのJanestyle アプリで開いたから文字化けしてた
流れ的に高度なネタなのか判断が出来なかったので

176 :
>163
計算式が入っているってどういうことだろう

177 :
>>173
Runで呼び出すのはどうでしょう

178 :
>>172
原因は>>174なんだろうけど大抵のブラウザはMIME無視して文字コードを指定して表示する方法がある
そんなことも知らないで>>167みたいなレスする奴のレベルは知れてるから相手しなくていいよ

179 :
>>173
C#かVB.NETでCOM dllを作ってシステムに登録
ブックから参照の追加で↑を再利用
かな
addinでもいいんだろうけど使いにくかったので俺はaddinの利用をやめた

180 :
>>179
addinてなんだっけ?
自分はexamの運用で特に不自由感じてないけど、使い方によってデメリットあるのかな

181 :
クッソ、さっきから頭の中で小さな男女が楽しそうにマイムマイム踊ってやがる。

182 :
俺なんて引き出し開けたら大名行列がいたぞ

183 :
トイレの中に魔法使いがいる

184 :
机からメス猫形ロボットが出てきた

185 :
シートをコピーして名前を付けるときにすでにそのシート名が存在し、重複した場合、メッセージとして、"既にその名前のシートは存在しているのでコピーしません。"
とメッセージボックスに表示し、シートをコピーしないようにしたいのですがどのようにすればよいのでしょうか。
現状は、重複する場合、コピーの元となったシートに(2)などデフォルトで付いてしまってこまっています。
どなたか教えていただけると幸いです。

186 :
>>185
事前に名前を取得すればいいだろ
馬鹿なの?

187 :
>>185
Private Sub hoge()
Dim title As String
Dim pro As String
Dim default As String
Dim rtn As String

On Error GoTo Errhd

ThisWorkbook.Worksheets(1).Copy after:=ThisWorkbook.Worksheets(1)
title = "シート名の入力"
pro = "追加したシート名の名前を入力して下さい"
pro = pro & vbCrLf & "キャンセルすると規定のシート名です"
default = "ここに入力してね"
rtn = InputBox(pro, title, default)
If Len(Trim(rtn)) <> 0 Then
ActiveSheet.Name = rtn 'ActiveSheetは使いたくないなー
End If
Exit Sub
Errhd:
If Err.Number = 1004 Then
MsgBox "シート名が重複してます。規定のシート名にします"
Else
MsgBox "エラー:" & Err.Description & "エラーNo:[" & CStr(Err.Number) & "]"
End If
End Sub

188 :
>>187
VBAの前に日本語を勉強しようか

189 :
>>188
流石プロ
いう事が違う

190 :
>>188
そだねー

191 :
>>187
文法がすげぇ

192 :
プロさんはソースコードレビューでコメントの日本語の指摘ばかりうけるので
ここで日本語の指摘して憂さ晴らししとるんやで
察してさしあげろ

193 :
カーネルナンチャラのいみがわからん

194 :
>>192
いやそもそも>>185の要件を一切満たしてないし

読解力はどこへ行ったのか

195 :
>>185
勝手に(2)になるってことは、シートのコピー自体をマクロでやってるってことかな?
1枚だけならともかく、複数シートのコピーとか考慮するとかなり難しいと思う。
1枚でも同じ名前があればコピー中止するのか、(2)になるのだけを中止するのか。
現在のコード見てみないとなんとも言えないを

196 :
foreachでシート名取得すればどうとでも出来ねーか?

197 :
ForEachでWorksheetsコレクション回してコピー元のシート名と一致するか見れば済む話だろ
答える側のレベルも低すぎ

198 :
For Each 回したりするくらいならこうだろ

Dim wks as Worksheet
On Error Resume Next
Set wks = Worksheets(sheetname)
On Error GoTo 0
If Not wks Is Nothing Then …(重複時の処理)…

199 :
182です。
みなさんありがとうございます。
今の状況はこんなコードです。

Dim i As Long
i = Worksheets("マスタ").Range("B3").Value

Worksheets("鑑").Copy After:=Worksheets(Worksheets.Count)

Worksheets(Worksheets.Count).Name = i

というコードです。

200 :
こんな表を書きたいのですが、どのようにコードを書けばいいのでしょうか?
http://iup.2ch-library.com/i/i1912882-1528379316.png

201 :
>>199

これならcopyの前に、その名前のシートがあるか判定してアラート出せばいいでしょ。

Sub test()

Dim myShName As String
Dim myWS As Worksheet
Dim myFlag As Boolean

myShName = Worksheets("マスタ").Range("B3").Value

For Each myWS In Worksheets
If myWS.Name = myShName Then
myFlag = True
End If

Next myWS

If myFlag = True Then
MsgBox "すでにあるためコピーしません", vbInformation
Else
Worksheets("鑑").Copy after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = myShName
End If


End Sub

202 :
ごめんなさい。197はスレを間違えました。失礼しました。

203 :
>200

ふつうにマクロの記録でできると思います。
が、それをマクロでやる意味があるのかどうかは分かりません。
手作業でなくマクロを使いたいのはなぜ?

204 :
ID:l2af3llu
馬鹿過ぎ

205 :
excelはめんどくせえなぁ

206 :
>>205
優しくしてねハート

207 :
>>199
flgを立てないパターン。
Dim sheet_name As String
Dim ws As Worksheet
sheet_name = Worksheets("Sheet1").Range("B3").Value
For Each ws In Worksheets
If ws.Name = sheet_name Then
MsgBox "alert", vbInformation
Exit For
Else
If ws.Name = Worksheets(Worksheets.count).Name Then
Worksheets("Sheet1").Copy After:=Worksheets(Worksheets.count)
Worksheets(Worksheets.count).Name = sheet_name
End If
End If
Next

208 :
ファイルの上書き保存を禁止するマクロって組めるの?
それともファイルを開いたら自動的に複製が作られるようなのを組んだ方が楽かな
チームで1つのファイルを使ってて加筆することはあっても消す事は出来ないようにしたい

209 :
>>208
before save イベントで、ある程度はできそうだけど、「上書き保存できないように」「加筆することはあっても消すことはできない」あたりが、ちょっと何をしたいのかよく分からないですね。

210 :
>>208
svn導入したら?

211 :
悪いこと言わないからWebアプリを覚えた方が良いって
共有も簡単
同時入力も出来る
端末も場所も選ばない
覚えるのはSQL C# html css JavaScript
たったこんだけで飛躍的に変わるんだから

212 :
>>208
操作ミスを防ぎたいだけなら「読み取り専用を推奨する」を設定しておくのじゃダメかな
http://www.moug.net/tech/exopr/0060021.html

213 :
>>208
エクセル上の上書き保存を禁止するだけなら、プロパティで読み取り専用にする方法と、Open時にパスとRead Onlyフラグを見て判定する方法と、before saved時にcancelする方法が考えられる。application.UserNameと組み合わせて自分以外は保存出来ないようにするとかね。

214 :
びふぉーせーぶきゃんせるしたらマクロほぞんできなくねて思って調べたらマクロ実行中にcancel trueにするとか書いてて目から鱗
使わんけど

215 :
>>208
>>210の言う通りファイルを複数人で共有して管理するなら
SVNとかTFSとかGITとかの導入を考えた方がいいかも
それなら間違って書いて上書きしてしまっても誰がいつ書き換えたかも分かるしすぐに直せる
もちろん何かしらでファイルが消されてしまってもすぐに復活出来る。

個人や会社の研修に使う程度の小規模のものなら
これをONE DRIVE、GOOGLE DRIVE、DROP BOX等と併用して使えば
インターネットに繋がる端末であればどこからでも
参照することが出来るようになる。
ただしセキュリティ面に関しては自己責任で。

216 :
と、無職が書いてます

217 :
ビジネスマンは認証なしファイルサーバーでエクセル共有が常識
徹底的に無駄をそぎ落とせ

218 :
>>217
共有ってもエクセルって同時に開けないでしょ?

219 :
>>218
エクセルを共有し、複数人で同時に書き込むの面白いよ

会議とかでエクセルで議事録を書き、それを共有する
(同時にプロジェクターで映し出すのもいい)
それを各自が見ながら発言し、適宜各自が修正などを加えていく…
4〜5人のお馴染みのメンバーによる会議なら、議事録作成はこれが一番手間いらずだったな

220 :
共有ってのは情報を共有するってこと
ファイルがみんなの目に触れられるところにあればそれは共有してると言える
同時に開けるか否かは関係ない
社長のスケジュールを社員全員が共有する、みたいな

221 :
入力しにくい、同時作業しにくい、検索しにくい
エクセルは情報共有ツールじゃないということだ
実は表計算ツールなんだよね

222 :
ExcelはDTPソフトにもデータベースソフトにも統合開発環境にもなる

何か一つしかアプリをインストールできないとなれば間違いなくExcelを選ぶ

223 :
何かひとつならdotnetインストールするわ

224 :
単にエクセルしか使えないだけ

225 :
単に向上心がないだけ

226 :
>>218
一応あるぞ
https://support.office.com/ja-jp/article/%E5%85%B1%E6%9C%89%E3%83%96%E3%83%83%E3%82%AF%E6%A9%9F%E8%83%BD%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6-49b833c0-873b-48d8-8bf2-c1c59a628534

227 :
共有はオブジェクトが扱えないのがなぁ

228 :
じゃあなんでexcelがこんなに普及してんの?
ここであれこれ名前が上がるけど、マイオナにしか聞こえん

229 :
普及してるのは最初から入ってるから
でも今では会社じゃほとんど使わないですよ
使ってもメモ替わり程度
それ以上の用途はそれぞれの専用アプリを使います
なければWebアプリを中心に作ります
エクセルメインって弱小零細企業なんだろうけどテクノロジーは恐ろしいスピードで変化してますよ

230 :
日本の過半数は中小で政府の提供ファイルもExcelやぞ
http://www.chusho.meti.go.jp/pamflet/hakusyo/H27/h27/shoukibodeta/h27/html/b1_1_1_2.html

231 :
今はPDFが多いだろ
エクセルとかワードファイルなんて必要項目以外も編集出来ちゃってもとファイルの意味ないじゃん
いつの時代の話をしてるの?

232 :
俺は派遣でかなり大きな会社(SONYとかと同レベル)で働いているけどExcelめいいっぱい使ってるぞ。
VBAも使いまくってる。
というかVBAの仕事なんだけどね。

233 :
現実と願望の区別が出来ない人がいるみたいだね。
それが進むとコンピュータ使うのなんて中小ぐらいしかないなどとなる。

234 :
派遣の人にさせる雑用事務仕事ならエクセルくらいしか使えないだろうから仕方ないかな

235 :
>>231
まさにこういう人の意見なんだけど、何をもってほとんど使わないと言ってるんだろう?
そんなにたくさんの会社を見てるの?

236 :
入力装置としては悪くないプラットフォームだと思う
もちろん神エクセルは論外だけど
小規模のテーブルデータをサクッと作るには便利
ただエクセルのままデータや文書として交換するのはやめてほしいね

237 :
>>234
お前より給料貰ってるけどな。

言い訳ばかりじゃたかが知れてる。
何を言っても零細は間違いというわけだ。

238 :
>>237
急に給料の話持ち出してどうしたの

239 :
雑用事務じゃないってことだろ。

240 :
ID:kgcyA64B

いつものフリーターの妄想です

241 :
表計算するのに使ってる

242 :
VBAの初心者です。質問させて下さい。

A列に注文番号
B列に購入商品(2種類ある場合は2行、3種類ある場合は3行になる A列の注文番号は同一になる)
C列に運送会社区分(A社、B社)
とあった場合
もしB列の購入商品に特定の記号 * を含むものが1点でもあった場合
その注文のC列を全てB社にする
というマクロを組みたいのですが思いつきません。

どんなマクロを組めばいいのでしょうか?

243 :
↑それには気付かなかった!

244 :
フォームを使っていろいろ勉強しながら遊んでるんですが、コードが長ったらしくなるときはcallで別に書いてるんですが、functionの使いどころというかこういうときは絶対functionだ!ってあるんですか?
引数やら戻り値やらネットでみたりするけど使いどころがいまいちで...

245 :
>>244
何度も呼び出す機能はfunction
同じ処理をコピペであちこちに書くと
直すとき大変ですし
スコープが狭くなると把握しやすくなるよね

246 :
>>244
むしろ関数の方が基本
ここぞというところだけプロシージャ

247 :
>>246
戻りが必要なときがFunctionだと思ってた。
「ここぞ」ってどんなとき?

248 :
プロシャージャから呼ばれるものは原則ファンクション。とりあえずブーリアン型にしてtrueを返してるわ
プロシャージャはイベントハンドラと、ファンクションのデバッグ用くらいかなー

249 :
>>248
ProcからSubProcを呼ぶのは邪道ってこと?

250 :
ほとんど哲学の話だから気にしなくていいよ

251 :
>>244
馬鹿はRよ

252 :
値の戻し方だって
関数の戻り値か、ByRef引数か、グローバル変数か、セルか、テキストファイルかは自由自在

253 :
>何度も呼び出す機能はfunction
さすがプロは違うなあ

254 :
>>252
Document Properyもね。

255 :
>>252
Document Properyもね。
>>254
あちゃ、Properyってなんだ?

256 :
関数のありがたみがわからない初心者のみんなは副作用、参照透過性、例外安全という観点で関数とプロシージャを比較してみよう
それだけでスキルアップだ
コードがグンと洗練されるぞ
やったね!

257 :
> 副作用、参照透過性、例外安全
最近覚えたので使いたくてしょうがないんだろうな w
頓珍漢過ぎて笑うしかないけど

258 :
いつも行と列がわからなくなるんだがいい覚え方ある?
列方向とか言われると頭が混乱する

259 :
>>257
初心者くん
お勉強は大事だぞ

260 :
>>258
Row
Column
それぞれの先頭文字見たら

261 :
>>258
途中で書き込んでしまった

https://lambdalisue.hatenablog.com/entry/2013/07/18/134507

見ろ

262 :
>>258
今時ほとんど横書きだから「行」と言えば横方向でしょ
一行目って言われて縦読みする奴はあまりいないし w

263 :
頓珍漢なお勉強した結果 ⇒ >>259 w

264 :
ありがとうございます
これで行列を判別できそうです

265 :
>>263
そのうち君にもわかる時が来る
めげずに勉強しよう
今はわからなくても大丈夫だ

266 :
constがないから効果半減だぞ

267 :
>>265
ごめんねー、頓珍漢な勉強なんてしたくないから w

268 :
>>258
長文は3行にまとめろ
この時「3列に」とは言わない
これが行と列の違い

269 :
まあ自分もほとんどがFunctionでSubは数えるほどだな。
Subを使うのは求める値を直接値として返すのはデカすぎるときとか。

270 :
値を戻す必要のある手続きならFunction
その必要がない手続きならSub

原則的にはこれしかないわけだが
Functionの戻り値以外で値を返す手続きは例外的なものに限るべき

>>256
お前はVBAで、何と何を比較してるの?

271 :
>>270
あぁ、それなら認識通りだわ。邪道なのかと思った。

272 :
>>258
http://o.8ch.net/16dyf.png

273 :
>>272
横だが、それいいね。今目に焼き付いたわ

274 :
>>270
> 値を戻す必要のある手続きならFunction
> その必要がない手続きならSub
複数の値を返したい時は?

> Functionの戻り値以外で値を返す手続きは例外的なものに限るべき
C# の TryParse() 系の奴は例外的だと言う主張ですか?

> お前はVBAで、何と何を比較してるの?
そいつには触れない方がいいかと

275 :
配列かユーザー定義、あとは引数を参照にして引数で返すとか。
そのプロシージャの内容で変える。

クラスにするとか場合によっちゃコレクションに複数のクラスを入れて返すとか配列を配列に入れて返すとかする場合も。

複数かどうかではなくそのプロシージャにとってどうあるべきかが重要。

276 :
>>275
結局FunctionとSubの使い分けは値を返すかどうかなんかとは関係ないってことだよね

277 :
例外もあるってだけで原則は>>270じゃないのか

278 :
>>246,>>248,>>256
sub も function も両方ともプロシージャです

279 :
副作用あるならsubでないならfunction

280 :
副作用が一切ないSub

281 :
functionにした事で起こる副作用って何?
可読性とか、解析とかに影響が出るだけで、動作自体はfunctionが完全上位互換だと思ってたんだけど。

282 :
どうせグローバル変数弄るんだから、どっちも同じだろ?

283 :
SubにしろFunctionにしろ、あんまり分割しすぎるのはBASIC的ではないので、可能な限りGoSubを使いましょう

284 :
>>274
>>270
>> 値を戻す必要のある手続きならFunction
>> その必要がない手続きならSub
>複数の値を返したい時は?
関係ないものを複数返したいなら多くの場合は設計ミス
関数の責務が複数あると考えていい
関係のあるものを複数返したい場合はそれらを含む別のクラスが隠れているのかもね
何れにせよ複数返したいと思った時点で冷静に考えを整理すべき


>> Functionの戻り値以外で値を返す手続きは例外的なものに限るべき
>C# の TryParse() 系の奴は例外的だと言う主張ですか?
いいとおもうよ
あれはパフォーマンス追求するときと並列処理、相互運用ぐらいにしか使わん
実際にref/outを使う標準ライブラリはほとんどない
ParseやTryGetValueは使用頻度が高く、例外でエラー通知するのはオーバーヘッドがあるからoutにするメリットの方が大きいと考えられて例外的に導入されたもの


>> お前はVBAで、何と何を比較してるの?
>そいつには触れない方がいいかと

285 :
>>284
> 何れにせよ複数返したいと思った時点で冷静に考えを整理すべき
で、結局どうするのさ?

> あれはパフォーマンス追求するときと並列処理、相互運用ぐらいにしか使わん


> ParseやTryGetValueは使用頻度が高く
結局よく使うのか使わないのかはっきりしろよ w
無理矢理反論してるのがバレバレだぞ

286 :
入れる穴が複数あるのに出す穴が1つってのが間違ってるんだよ
だから入れる穴から出す

287 :
もはやプロさんによるプログラミング脱初心者講座
エクセルマクロはどこいったんや
ほんま役に立たんプロさんばかりやなw

288 :
>>285
もう少し理解力つけよう

289 :
もう全部参照渡しやっとけば?

290 :
>>274
あれはあくまでもVBAでのSubとFunctionの使い分けの指針な

>複数の値を返したい時は?
複数の値を返したい時点で例外的な処理だと思った方がいい
複数の値が必要なら、複数の値をまとめた「何か」を一つ返すのが原則
まあ実際はそうガチガチにはやらんけどな

>C# の TryParse() 系の奴は例外的だと言う主張ですか?
まあ、例外的
あれは、変換が可能かどうかと、変換した値という二つの処理をまとめてるから

>>278
おれもそう思ってはいるが
VBAにはいまでもGoSub Return ってのがあるからなぁ

291 :
>>288
説明も反論もできないなら黙ってろよ w

>>290
> あれは、変換が可能かどうかと、変換した値という二つの処理をまとめてるから
どうみてもその処理はまとめるべきだろ
別々にやれと言うならちょっと頭おかしい

292 :
Sub 色の付いたセルの値をクリア()
Dim C As Range
For Each C In ActiveSheet.Range("A1:J25")
If C.Interior.ColorIndex = 15 Then
C.ClearContents
End If
Next
End Sub

で色の付いたセルの値をクリアしたいのですが、結合したセルからは値を消せない的なメッセージが出るのですが、結合しているセルに入っている値を消すにはどのようにすればよいかどなたか教えていただけませんでしょうか?

293 :
セルが結合されているかどうか調べて、結合していたら解除すれば?

294 :
>>292
C.MergeArea(1).ClearContents

295 :
結合セルはバグの温床

296 :
神エクセルへの反逆は許されない
事務員さんに信仰を捧げよ

297 :
はじめまして
最近vbaでマクロ書くようになりました

Dim lastcol
Dim kokyaku

lastcol = Cells(2, Columns.Count).End(xlToLeft).Column
Set kokyaku = Range(Cells(2, 4), Cells(2, lastcol)).Find(顧客コード).Column

上記はマクロの一部分なのですがこれのColumnでオブジェクトが必要ですというエラーでるのですがどうしたらいいでしょうか。
ちなみにSetをとるとオブジェクト変数およびwithブロックが、、というエラーが代わりにでてきてしまいます。

298 :
>>297
これならエラーが出ないと思うけど
Set kokyaku = Range(Cells(2, 4), Cells(2, lastcol))

299 :
列番号を取得したいだけならSetはいらない

顧客コードは変数なの?
変数じゃなく「顧客コード」という文字列を検索したいなら

.Find(顧客コード)
ではなく
.Find("顧客コード")

と書かないと

300 :
Cellsの使い方が間違ってるんじゃないかね

301 :
関係無いとも思うけど、顧客コードを検索して見つからなかったらエラー出るぞ。
まずFindまでをオブジェクトに代入し、代入されたオブジェクトがNothingかどうかをチェックすべき。

302 :
あと、変数は全て型指定すること。

303 :
どうしたお前ら
いつになくまともやんけ

304 :
よくこんな馬鹿を相手にするな

305 :
あーなんだ
もうSubとFunctionの話は終わっちゃったのか
ちょっと来るのが遅かったな

306 :
>>298
列番号ほしくてColumn付けてたんですよねー
でもSetなくしたらとりあえず実行できました・・・なんでできるようになったのか謎です

>>299
顧客コードは変数です
ユーザーフォームで入力させてそれを判別してるような形をとっています

>>304
初めて1週間ですみませんorz



型式って指定したほうがやっぱりいいんですか・・
もう1つ悩んでることあるのでちょっと書かせてください

307 :
ユーザーフォームで顧客コードを検索してそれを別ブックに転記したいんですけどうまくいきません
繰り返し文だと i=0 To 5 みたいに回数を決めないと思いまして、代わりにdo until使ってるんですけどバグっちゃって・・
参考にコードと表のSS貼っておきます
ご教授願います

ttps://gyazo.com/08befaf20d8d06c1c09571710d6614b6
ttp://textuploader.com/dp3p2

308 :
確かウィンドウをサブクラス化し
てコールバック関数でゴニョゴニョ、、、
なんたらする時メモリーの番地が、あーたらで
それでふんくちおnを使うんだったような??。

今はこんなことしないのかな。

309 :
Dim i
i = 0
Dim kekka
Do Until kekka = vbCancel

この辺が意味不明です。
i=0
だと定数みたいになってる。
kekkaも値自体が入ってないのに、do until kekka =2と書かれても。
(vbcancelは組込定数なので、2という数値と同じ)

型は指定した方がいいと思います。

310 :
>>309
単純に変数宣言したかっただけです;;

意味合いとしては、

「処理を続行しますか?」→OKだったら最初のユーザーフォームを起動させて転記する。
                →Cancelだったら転記をしてプログラムを終了。
という感じなのですが。。

311 :
プロパティとメソッドの違いがわかりません
判別する方法とかあるんでしょうか

312 :
>>311
MSDNを丸暗記する

313 :
>>311
一度新幹線に跳ねられてみればわかるかもよ

314 :
>>311
判別して何がしたいの。
VBAなら深く意識しなくて困る事がないんだけど。

315 :
Propertyとあるのがプロパティ
そうじゃないのがメソッドだ

316 :
>>314
本で見て疑問だったので笑

317 :
>>311
シンタックスシュガーというやつだよ
違いはあるともないともどっちともいえる

318 :
シンタックス・ショッカーだって!?

319 :
板を荒らすなよ

320 :
>>307
クオーテーションマークでコメントアウトが出来ますので、どこでどのような処理をしたいのか書いておくと良いかもしれません。

>ユーザーフォームで顧客コードを検索して
UserForm.Valueで入力された値を参照してから該当の表内に検索をかけることになるでしょう。

>Do Until 文
Do Loop文の中でIf kekka = vbOK Thenがコメントアウトになってますのでこれは機能しません。
また、Loopを記述するより先にEnd ifで完結させないとエラーが出るはずです。

書き慣れるまでは変数宣言は上部にまとめておくのも一つの手かと思います。

321 :
サーバーに入ってきた仕事の素材を連番のフォルダを手動で管理しております
現在画像のような感じにサーバーに素材が入ったのを確認したらとなりのセルを塗りつぶすというのを手動で管理しています
それを特定のフォルダをexcelで監視させて新しいフォルダが入ったらとなりのセルを
自動で塗りつぶす、ということをvbaではできないでしょうか

可能であればコードも教えていただければ幸いです

画像url↓
https://dotup.org/uploda/dotup.org1560186.jpg
https://dotup.org/uploda/dotup.org1560191.jpg

322 :
Excelで管理する意味がわからない

323 :
そこにエクセルがあるからさ

324 :
この程度でもお金が発生するんだから知識の安売りしちゃダメだよね

325 :
>>321
Dir関数

326 :
日本企業は外注には何十万、何百万も払うのに自社の社員が書いたものはタダだと考えてる。

327 :
>>321
本題からはそれるけど、セルを塗りつぶすってのはセルの背景色を直接指定するんじゃなくて
条件付き書式にした方がいいと思うよ。
つまり該当セルに「1」とかの値を入力すると勝手に赤い背景色になるようにしとく。
値ならあとで利用しやすいからね。

328 :
>>326
VBAごときに価値はない

329 :
>>328
VBAスレで吠えるトンスルランドの寄生虫WW

330 :
>>327
そしてセル数のぶんだけ重くなる。
規模によるけどね。
色付けても検索とか抽出とか面倒なだけだから自分なら記号でも埋めるかな。
色付けるとすれば視認性をあげるためのオマケ。

331 :
わかったつもりになってUIを根底から否定してしまったプロさんw

332 :
>>321
開始時刻から終了時刻まで一定間隔でマクロを実行するには?
http://www.max.hi-ho.ne.jp/happy/YNxv9c134.html
を使って
>>325のDir関数を使って指定のフォルダをチェック
みたいな感じで

333 :
>>321
こんな馬鹿に管理させる馬鹿会社があるのか

334 :
アマチュア事務員VBAerしかいない中小企業なんてこんなもんでしょう

335 :
>>330
>そしてセル数のぶんだけ重くなる。


336 :
条件付き書式だらけのワークブックなんて開くのもしんどいわw

337 :
>>336
条件付き書式「だらけ」?
ひとつで十分だよね?

338 :
>>337
ああ、>>327>>321の個別の事例に特化した話だけをしていたってわけね
俺は(恐らく>>330も)てっきり>>327は一般論を話しているものと思ったよ
「本題とはそれるけど」って書いてあったからかなあ

一般論としてはセルの背景色は条件付き書式で塗りつぶすべきなんていう馬鹿な話はないから

339 :
>>338
そりゃだって>>321の画像で言えばB列に条件付き書式を設定すれば十分だし、
色はおまけで値で管理したいだろう?

340 :
>>338
Excelの操作(データ整理など)で、
条件付き書式でセルの文字色や背景色を変更するのは一般的なことだと思ってたんだが、どういう点がバカなんだろ?

341 :
おっと、IDを消してる人にレスしてしまった…

342 :
アマチュア事務員さんの一般論とプロの一般論は異なるということだね
プロはセルに一個一個色を設定するなんてめんどくさいことはしないよ

状態が1つ変わるたびに別の状態を同期させるようなコードは手続き的で非常にメンテナンスしにくい
まずは問い合わせで解決することを考えよう
これを覚えてまた1つ賢くなったね事務員さん

343 :
自分で考えない馬鹿には何を教えてもムダ

344 :
今のエクセルは下手なVBAerが組んだらゴミの山生成するから気をつけたほうがいいのは間違いない

345 :
ブバラー

346 :
>>342-344
馬鹿は何も考えない方が良いんだってよプロさんw

347 :
>>340
それも度を過ぎると再計算が走って重くなるからVBAで色を塗ってしまったほうがいいという一般論

348 :
度を過ぎたときにおこる問題を回避するのが一般論という

349 :
それは一般論の一般的な定義ではないねw

350 :
その程度では重くならんだろ
どんだけ巨大なモンスターブックだよ

351 :
>>346
なかなか釣れないね

352 :
>>348
これはひどい

353 :
重くなってから考えればいいと思うよ
仕様で決めたこと以外は極力手を抜こうぜ

354 :
金にならない仕事を勝手にやって問題起こして仕事増やす奴

355 :
FileCloseとSub Procの寿命について質問です。
作業中のSafe Backupを作成しようと思い、Shift+Ctrl+Sに
@ "_01" で終わるファイル名を、"_00" でリネーム保存
A 続けて "_01"でリネーム保存して元のファイルに戻る
といった動作を割り付けています。
この@の直後の時、"_01" はプロセス上にいないと思うのですが、SafeBackup
は最後まで正常に走り、"_01" ファイルがプロセス上に戻ってくるのが不思議です。
内部的にはどのような動きになっているのでしょうか。

356 :
期間にあったものを抽出する検索ソフト作ってて、optionボタンそれぞれ1年前〜今日、2年前〜今日、全期間ってあってdateadd関数計算して全期間以外はうまく出来るのですが全期間ってどう計算したらいいですか?

357 :
>>356
ネタ?
その程度の事をここで聞かないと分からないの?
嘘だろ?

358 :
非建設的発言は良くないでしょ。

>>356
でも質問に情報が全く足らないな。
検索されるものは何なの?
別シートに日付のついたデータがあって、そこから検索するとか?

DateAdd使ってるのも良くわからないな。
全期間ってのは他に検索条件が無ければ全データになっちまうと思うんだが。

359 :
>>358
テキストファイルから一列ずつ検索。
instr(1,strline,txtSrchWd)
これてヒットしたら、スプリットで切って配列に入れて、(5)に入る日付と比べて正なら抽出したくてやってます。
現在の日付からそれぞれ1年、2年前は計算でうまく抽出出来ますが、全期間は一番古い日付調べておく必要があるんですか?

360 :
>>359
全期間だから全部だろ、馬鹿なの?
それとも前提条件を全部書かない馬鹿なの?

361 :
君vba出来るんでしょとか言われて簡単なプログラム作成任されて作ったけど管理めんどくさすぎん?
初めはここは数字しか入らんよて言われてたからisNumericだけ判定してたのに数字以外入れると止まっちゃうから漢字とか諸々の対応させられた
そんな感じで他のinputとかアウトプットの要件がころころ変わる
そして全然動かんねーとか言われるイラつく

362 :
>>359
全期間ならば現在の日付からの計算は必要なく、一番古い日付を指定しなくともテキストファイルの最終行まで走らせれば良いのでは。

363 :
>>361
プログラムの仕様を決めるのはあなた
あなたが使用者に対してルールに沿った入力を求めるのは当然
道具は正しく使われるから道具として機能するのであって、猿に道具を渡しても壊れて返ってくるだけ

会社の要求をどの程度受け入れるか、もう一度冷静に考えたらどうか
個人的には、猿には付き合う必要ないと思ってる

364 :
入力規則でガチガチにしろ

365 :
>>361
人に使わせるような真面目なツールにVBAは無謀でしょ
品質担保しようとしたら凄まじいコストがかかる
自分しか使わない、数行で終わる、使い捨ての、エクセル操作に特化したマクロがVBAのターゲット

366 :
トレードオフで論破

367 :
>>311
一番簡単な方法はその都度オブジェクトブラウザで確認すること
アイコン表示されているから一目瞭然

368 :
>>361
バカほど我儘な要求を平気でするからなぁ。で、「俺は忙しいからプログラムなんて覚える暇が無いんだ、暇なヤツはいいなぁ」とか吐かしたりさぁ。

俺は「お前のオツムに合わせてたらキリがねえわバカ」ってあからさまに言ってるよ。だいたい、数字を入力するところに平気で文字を入力して「何jこれエラーとかマジやってらんない」とか。
やってらんねえのはこっちだっての!

369 :
使い方守れない馬鹿も馬鹿だけど本気で業務システムを作ろうってんなら
誰でも使えるようにデザインする努力も必要

入力文字種を守れない馬鹿がいる環境なら自由に手入力させる余地を残すな

370 :
とりあえずドキュメントなりマニュアルなりを作って
読まん奴まではフォロー出来ないとはっきり意思表示する

そっから先は職場の人間関係の話なので何とも

371 :
そういう人に使わせる前提のある程度しっかりした作りのアプリはエクセルみたいな非生産的なプラットフォームでは普通は作らないね
エクセルは個人用のちょっとした処理をサクッと実行したい時とかに使うといいよ
まあその個人用のちょっとした処理だと今度はPowerShellのほうが楽なんだけどな
帯に短し襷に長しってやつだ

372 :
> そういう人に使わせる前提のある程度しっかりした作りのアプリ
エクセルには無理なんやなく
プロさんには無理なだけやんけw
言い訳だけは上手やねw下手やけどw

373 :
VBAでUTF-8(BOM無し)ファイルを読み書きする最速の方法は何ですか?
ADODB.Streamだと遅いしBOM無しにするための2度読み書きでさらに遅いし

374 :
>>368
数字とか入力文字列の制限とかくらいはプログラム側でエラー処理するべきだろ。

375 :
>>371
程度にもよるが普通作る。
1回動かして終わりになる場合は作らんが。

376 :
>>373
アセンブラで最適化したDLLを作って読み込む

377 :
>>373
nkfでBOM付けて処理して、ポスト処理で外すw

378 :
2007から2016に変えたらCSVの処理速度なんかがかなり低下した気がするんですが気のせいかな?

379 :
>>373
コードページを明示的に指定するdllを作るのがいいんじゃないか?
俺はそうしてる。自動判定なんていらん。(言い過ぎ?)

380 :
>>378
CSV言うても読み方も書かんとわからん。
workbook.openなんかはバージョン上がるにつれてどんどん遅くなってる。2003までは一瞬だったのに・・・

381 :
>>373
こいつ程度の頭でもできる最速の方法なのか?
そもそも最速の定義は何なのか。同一ハードウェア上でという前提条件があるのかないのか等々
馬鹿は考えもなしに「最高とか最速」などの用語を使いたがる

382 :
>>380
あー、基本workbook.openで開いてます…
ここで結構時間かかってるのかな
あと、セルの数字を一つ一つ計算したり置き換えたりって処理もかなり遅くなってるような
配列でまとめてとりこんで配列で吐き出すって感じの方が速いのかな

まだ色々と確認中なのですがいろんな物がこれまでよりやたら遅くなってる気がして…

383 :
表計算ソフトなんだかた視覚効果なんかいらないと思うんだが何故かMSはそういうのに拘りがあるようで

384 :
それいったら殆どの機能が不要になるけど
表計算の上に無秩序に機能を拡張したコンセプトのよくわからないソフト
素人にはこういうのがいいんだよ

385 :
>>384
スマホタブレット世代の若いヤツはそれをいいとは思わないだろ。

386 :
誰かwbsのイナズマ線を自動で引いてくれるソース書ける人いない。。。?

どこから初めていいかすら、分からない。

387 :
>>386
まずは息を30分停める練習をしてください。
それができたら来てください。

388 :
>>386
1. WBSの入力サンプルを用意する
2. 1に基づいてイナズマ線を手動で書いてみる
3. 2に基づいてどういう入力のときにどういう出力をすればいいのか整理してパターン化する
4. 3に基づいてコーティングする
5. 4を動かして2と同様の出力になるかどうか確認する

389 :
>>386
> どこから初めていいかすら、分からない。
流石にその状態だとこっちもどこから教えたらいいかすら、わからん
Excel 稲妻線 あたりでググって適当なアドイン使ったほうがいいんじゃね?

390 :
Project買えばいいのに
これだからExcel陶酔者は困るんだ

391 :
VBAなんだから、何はともあれマクロの記録からだろ。

392 :
VBAの本に書いてあるコードをひたすらパソコンに写経して実行してればVBAできるようになりますか?

393 :
>>392
3日でオッケー

394 :
>>392
タイピングの能力上がるだけかな

395 :
>>386
まずはWBSとイナズマ線の定義を明確化して
全てはそこからだよ

396 :
GG佐藤のせい

397 :
ワールドビジネスサテライト?

398 :
「イナズマ線」でググったらこんなの出ましたけど?

イナズマ線を簡単に引くExcelマクロを作りました
http://www.fin-itnews.com/entry/2015/08/12/031032
Sub イナズマ線描画()
'FreeformBuilderオブジェクトを宣言
Dim InazumaLine As FreeformBuilder
'始点を設定
Set InazumaLine
'以降の点を結んでいく
'繰り返し用変数i
Dim i As Integer
'列の位置固定用変数
'上から下にセルをなめていく。0以外の数値ならイナズマ線を引く
For i
'数値以外はスキップ
If Not () Then
'0もスキップ
ElseIf
'イナズマ線を引く(正の数なら>、負の数なら<)
Else
End If
Next i
'終点を設定
'イナズマ線を描画
'見た目の編集(青の太線)

399 :
>>390
Redmineでもなんでもいいけどオープンソース使えばいいよ
ビジネスマンなら無駄な出費は最小限に抑えなきゃ

400 :
イナズマ線でほんとにイナズマになるのってまずいんだから
直線引いとけばいいんじゃいないかな

401 :
フリーの高機能プロジェクト管理ソフト「OpenProj」 …
http://fnya.cocolog-nifty.com/blog/2009/02/openproj-57cb.html

402 :
1.シェイプの直線を挿入するのをマクロの記録で記録する。
2.記録されたコードの中で始点と終点と思われる部分を適当に変えて実行してみる。
3.2で得られた任意の2点で直線を引くマクロを2回実行し、その時1回目の終点と2回目の始点を同じ座標にする。
4.3の実行結果後、マクロの記録で2つの直線をグループ化するのを記録する。
5.n個の直線を引いた後で一度にグループ化するように処理を変更する。
6.n+1点の配列を引数にして上記を実行するようにプロシージャを作成。

マクロの記録は余計なコードが大量に含まれるから関係ないものを削除して実行を繰り返すと良いコードになる。

403 :
>>386
まずは全裸になって町を駆け抜けてくさい

(´・ω・`)b

404 :
特にエラーがあるわけでもなくブレークポイントを設置しているわけでもないのに
黄色い矢印が出て止まるのってなんなんでしょうか
必ず起きるというわけでもなく出たり出なかったな上に続行ボタンを押せば特に問題もなく終了するので
発生原因がまったくわからないのですがこれバグかなんかですか?
@2013

405 :
>>404
スクリーンショット見せて

406 :
>>404
必ず止まるわけじゃないだろ。

バグかどうか分からんけど、わりとよくある。
PC再起動で直る。

407 :
ウィンドウフォーカスが外れるとオブジェクトが使えなくなってしまい止まるコードは良くある。
コーディング上の問題

408 :
>>404
「VBAProjectのコンパイル」を実行してからF5押してもダメか?
たまーに同様のケースでこれで解決する場合があったんで。

409 :
>>404
エラー起きた後に続行すると動くって事は
画面が完全に表示しきれてないのに読み込もうとするからじゃない?
初心者ならエラー起きる箇所の前にwait入れる
プロなら完全に表示しきったら次の処理に行くようにする

410 :
>>409
馬鹿丸出し

411 :
>>404
多分バグ
ブレイクポイントを設定したままセーブして
立ち上げ直すと起こる奴のことじゃないかな?
そこにブレイクポイントを再度設定して
外してやって起きるか試してみ?

412 :
エラーの出た行のコード晒せ
話はそれからだ

413 :
エラーメッセージとエラーコードもな

414 :
セル内にアルファベットがあるかどうか判断する関数おしえて

415 :
>>414
馬鹿はRよ

416 :
>>414
VBAじゃなくて関数でいいの?
そしたら>>415に聞いたら?
きっと親切に教えてくれるよ

417 :
「VBAじゃなくて関数」って方言かなにか?

418 :
なんでエラーが出たことになってんの?
全く理解出来ん。

419 :
Sumifsの引数って内部的にどうなってるんでしょう?
ABABAB…って繰り返すので、
Byval何とかAs何とかってのが延々並んでいる状態?
それとも繰り返し用の書き方がある?

420 :
>>419
馬鹿はRよ

421 :
ParamArray

422 :
2007でオブジェクトブラウザでみると、ずらずらと引数書いてあるな

423 :
テーブル1に、row数が同じテーブル2を合体させたい
データ、書式設定、条件付き書式やドロップダウンリストごとテーブル1に合体させたい。
どうやるのが無難ですか?

424 :
全く作り方が思い付かないからご教授お願いします。

@入力の所に数字を入れる。
Aup or downに数字が入れる。

例 入力45 up1 down2

Bupとdownを計算 -1
C入力45がコードのCとDの間で下のDとしてBで計算された-1上を選択。
D判定が×だから○まで上に上がりBを選択。

※計算が+なら下へ、判定○ならその左のコードを取得、×なら○まで下へ。

※上下に移動していって該当がない、移動なし、判定×ならエラー。

こんなのを作りたいんですが上下移動がどうしたらいいか分かりません。
https://i.imgur.com/rZ7HQjn.jpg

425 :
>>424
ループが書けるなら何も難しいポイントはないと思うけど?

426 :
どんな状況で使うんだそれwww

427 :
>>423
テーブルで結合せず普通にRangeでくっつけてテーブルにすれば良いのでは?そっから書式はどーにでもなる

428 :
昨日からVBAを始めたものですが
小数点第一位の繰り上げ処理がしたくて調べたのですが
引数がどうのこうのって出てうまくできません・・・
使ってるコードはCells(1,2)=Cells(1,1)/3
みたなのをひたすら書いたコードなのですが,,,教えてください

429 :
>>425
Do while Not EOF(filNo)
 Line Input ♯filNo,strtxtLine
 ReDim Presrve arrline(cntLine)
 cntLine=cntLine+1
Loop

実際はこれでtxtファイルを読み込んでから1行ずつ見ていって判定処理したいんだけど、無理かな?

430 :
>>429
無理じゃない
テキストファイルを配列に読み込んで処理すればいい
配列はワークシートのセルとまったく同じ構造なので、ワークシートで動くプログラムが作れたらRange (Cells)の部分をArray型に置き換えるだけ

431 :
i=1
range("i:2").select
でエラーが返ってくるのはなぜなんだぜ?

変数を含んだ行をコピペしようと思って、これでシンプルにできると思ったらできなかった

432 :
平成30年のつもりで
H30 = 2018
とかやってた時に
Range(“A30:H30”)が”A30:2018”と解釈されたら困るだろ

433 :
>>431
iを"で囲んじゃってるからじゃない?

434 :
i人を囲ってるに空目した

435 :
VBA昨日から始めたんですが
小数点第1位の繰り上げ処理がしたいけどわかりません
cells(1,1)=cells(1,2)/3とか簡単なやつをひたすら書いてるだけなのですがどうか力を貸してください

436 :
右クリック
書式の設定

437 :
>>435
切り上げ?繰り上げ?

438 :
>>435
worksheetfunction.roundupで良いんじゃないの?

439 :
>>436
すいません、切り上げです。
>>437
マクロの結果が123.1だったら124にしたいってことです
>>438
切り上げたいセル=そのコードでいけますか?

440 :
worksheetfunction以外ないでしょ。
わざわざvba使う意味がよく分からないけど。

441 :
関数でだけでいいですよね。
ありがとうございます

442 :
切り上げ程度の簡単な処理でも、VBAだけで全部作るよりWorksheetFunctionの方が速い?

443 :
知らん実際に作ってみろよそして共有してくれ
家じゃexcel無いしめんどい

444 :
めんどいのに意味のないレスはしたくなる馬鹿のジレンマ

445 :
わざわざ車輪の再発明をするこたぁねー

446 :
ジャップ企業「わざわざ車輪の再発明をするこたぁねー」
アップル「iPodでウォークマンを再発明しました!」
アップル「iPhoneで携帯電話を再発明しました!」
アップル「iPadでタブレットを再発明しました!」

447 :
iPodがウォークマンの再発明としか思えないから
日本からああいう製品は出なかったんだろうな

448 :
アップルの成功はAppStoreをオープンにしてアプリを爆発的に増やしたこと
日本企業はオープンにせず独自企画が好きだもんな
iPodの頃なんて大して注目されてなかったし

449 :
どこがじゃ。
全然オープンじゃねえだろ。

iPodのインパクトだろ。
こういうものはガジェオタが飛びついて一般に浸透してくから、最初は一般に注目される必要は無い。

デザインの力は大きかった。

450 :
条件付き書式って名前とかタグみたいな個を識別できるようなプロパティないの?
条件にごちゃごちゃ付け加えると重くなるからvba側で操作したいんだけど
特定できそうなところでなんちゃって判定するしかないのこれ

451 :
ない上に知らん間に増殖する
全消しして追加がいいよ

452 :
>>451
> ない上に知らん間に増殖する
そうなんだよね
条件付き書式の整理とか統合とかのコマンドがほしいわ

453 :
条件付き書式が設定されたセルを調べることは可能
https://support.office.com/ja-jp/article/8313ee09-b95d-444a-8103-6bbf3691e82b

454 :
>>452
確かに欲しい。でも作ろうと思えば作れる事に気がついた。
追加されるとは考えられないしやるか・・

455 :
>>454
作って公開してくれ〜

456 :
ACCESSのフィールドをExcelに転記するとき、
例えばそれぞれ
1
2
3
4
5
と入っているレコードを
下から3つを転記したい(3、4、5の順で)場合どのようにすればよいのでしょうか?
CopyFromOrdersetでRowsMaxを3にすると1、2、3となり、下の3件3、4、5の順では転記できないでしょうか?
SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
どなたか解決策を教えていただけないでしょうか?

457 :
>>456
Sortすりゃいいだろ

458 :
>>456
https://msdn.microsoft.com/ja-jp/library/cc408450.aspx
>コピーは Recordset オブジェクトの現在の行を開始点として行われます。
らしいから、現在行を3行目にしとけばいいんじゃない

459 :
>>456
https://msdn.microsoft.com/ja-jp/library/cc408450.aspx
>コピーは Recordset オブジェクトの現在の行を開始点として行われます。
らしいから、現在行を3行目にしとけばいいんじゃない

460 :
>>457-459
早速にありがとうございます。
確かに転記後にソートでどうにでもなりそうですね。
できれば転記時にできればとおもっておりました。
カーソル位置を3行目にする事で解決はおっしゃるとおりですね。
ただ私の最初の前提が不十分な解説のため申し訳ありません。データが増えていった場合でも下から3つを取り出したい場合はどうすればよいか苦慮しています。
ExcelVBAのように、Offsetが使えたらデータが増えていっても下から3つだけを取り出すという風にできていいなと思うのですが。

461 :
>>460
topを使って馬鹿はいい加減に引っ込め

462 :
>>460
現在行をn-3行目にしとけば良いんじゃない

>>461
単純にtop取るんじゃなくて、descでorder byしてtop取ったやつをもう1回order byする必要があるんだが
そんなSQLがすらすら書けるようなレベルのやつはこんな質問しないし

463 :
もう一回order byは必要無いだろ。
Excel側で対処すれば良い。

464 :
>>462
こいつみたいに、後から出てきて回答してることをグタグタ書く馬鹿も来なくていいよ

465 :
>>463
それが自分でできてりゃ
>SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
てな事にはなってないだろう

466 :
>>456
このあたりを参考にしてみ
http://www.accessclub.jp/bbs2/0051/beginter16860.html

467 :
EAK

468 :
マクロ・VBAの勉強がしたいです
どのような方法で勉強を進めるのが理想でしょうか
エクセルのレベルはVLOOKUPなどのメジャーな関数を使える程度のレベルです
ちなみに会社員です

469 :
>>468
何をしたいのか明確な目的が必要
楽したい!ってモチベーションがないと続かないよ
トライ&エラーを繰り返すこと
教本だけでは身に付かないから、実践は必ず必要

470 :
>>468
Vlookupの欠点を知ってるよね?

471 :
vloookupをdisる様になったらエクセル使いとして一人前

472 :
>>468
今からプログラミングを覚えるならVBAなんて化石言語はやめましょう
言語的に近いC#がいいと思いますよ
VBA程度の事は全て出来ますしもっと色々と出来るので推奨

473 :
体系的に勉強する価値なんてないよ
やらなきゃいけないことをググって試してみての繰り返し
プログラミングのスキルやセンスを磨きたいなら他の言語で学んだ方がいい

474 :
>>468
こんなところで聞かなきゃいけない時点でもうダメだな

475 :
>>468
VBAを覚えて何がしたいのか知らんが、仕事で活用するなら
まず、エクセル関数をもっと覚えて関数で何とかできるようになりましょう

事務処理ならエクセル関数だけで大概のことはできる
VBAが必要な場面はあまり無いと思う。せいぜいファイル操作くらいか

476 :
すいません、processingについてのスレッドはありますでしょうか?

477 :
使いわけでしょ。
数千あるチェック項目の内、1日100個ぐらいずつをチェックしていき、その集計結果で1日の結果を関数で出し、更に1ヶ月のト―タルなんかを関数でやってたら重くてどうにもならなくなったりするし。

銀行でDBから取ってきたデ―タが辻褄があってるかを調べるなんて仕事をしたことが有るんだが、その為にシステム組んでる側の(と言ってもそいつが組んでる訳じゃない)奴がチェック用に用意したsumproduct多用ブックは酷かった。
触る度に5分とか10分とか待たされた。
VBAで組んだら一瞬になったけどね。

自動再計算を切るのも諸刃の剣だし。

478 :
プログラマじゃない普通の会社員がExcelを使うのにVBA勉強すんのは普通だろ。
なんで不必要なC#とかやらにゃならんのだ。
プログラマってほんと頭でっかちやな

479 :
VBAって二十年くらいなんの進歩もないよね
この言語を覚えて次に全く役に立たないじゃん
キャリアアップの為にも意味ないよね

480 :
>>478
プログラマじゃないとしても今時エクセルだけじゃ話にならんでしょ
誰だって日常的にディレクトリ階層とエクセル以外のファイルを扱う
ツールの拡張がスクリプト言語になってることは良くある
自分のWindowsを管理するにはpowershellを使うね
得に最近需要が高まってるのはREST APIやスクレイピング技術だな
いずれもVBAでもできんことはないが果てしなく古臭い構文と開発環境、貧弱なライブラリのせいで死ぬほど生産効率悪いんだよね
マゾにはオススメかもしれんがノーマルな人にはオススメできんな

481 :
>>479
VBAは進歩がないのがメリットとも言える。
pythonなんかは2と3で動作仕様が異なる上、モジュールのバージョンも気にする必要があって、別PCで同じ環境を構築しようとすると結構面倒。
その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。

色々言語触ったけど、自分の結論としてはどの言語が良い悪いではなく、結局適材適所で使い分けが大事。

482 :
WindowsUpdateの影響で個々のPCで不具合でまくるが

483 :
もっと短いのにならないかな。
Vlookupとか長いので、GonとかPnとかさ。
Sheet1も地味に長いよね。
Werでいいよね。

484 :
事務員はプログラマじゃないからVBで十分
他の言語を扱うなら担当の部署に回すか外注する
部署で自分しか扱えない言語を触りだしたら間違いなくそいつは地雷

485 :
iPad上でもWinで書いたVBAファイルは動きますか?
ファイルをやり取り出来る?

486 :
「エクセルで十分」ってよく聞くフレーズだけど
「料理するには石器で十分」のような強烈な違和感を感じる

487 :
VBAって結構リストビューになかされない?最近win10になったけどバグる。
そもそもリストビュー使わない?

488 :
>>485
Office365じゃないとVBAは動かなかったはず。ファイルはやり取り可能だが

489 :
>>481
> その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。
VBAはいいとしてもその上のExcelの動作がバージョンによって変わる
特にグラフ周りはグダグダ

490 :
普通の事務職がVBAを勉強したいっていう何の変哲もない書き込みにおまえら首の皮を取ったようにレスしててワロタ
おまえらみたいなのが少数派だってことを認識した方がいいぞ

491 :
>>490
首の皮を取ったは違うよね

492 :
会社員=事務員じゃないし、首の皮取ったら職失うし

493 :
悪いこと言わんからちんこの皮は取っとけよおまえら

494 :
鬼の首OTL

495 :
もう俺はおまえらに何も言えない
首の皮を取って出直してくる

496 :
本気でプログラミングするわけでもない事務員なら、より簡単に色々出来ることが多い言語を選ぶのが正解だろ?
マゾはVBAから始めてもいいけど完全に選択肢間違えてっぞ

497 :
>>496
本気じゃないからVBでいいんだよ

498 :
ExcelVBAを学びたい人の目的はExcel上での自動化なので、他の言語提案する馬鹿は、要求仕様もRFPも設計も出来ない馬鹿だと思う

499 :
真に事務屋に必要なのはAutoHotkeyとかUWSCみたいな即物的なマクロツール

500 :
つーかいい加減VBAなんてゴミ捨てろよ
手抜き目的でプログラムなんて興味なしが大半なんだからそのへん雑なjsが最適だろ
型だのSetだのCallだのいらねーんだよハゲ

501 :
えっ、エクセルでJS使えるの?

502 :
エクセルと心中する気持ちがある
目指せエクセルマスター
それぐらい本気で取り組む気持ちがあるならVBA
そこまでの覚悟がないなら他の簡単で使い道が多い言語にしたほうがいいね

503 :
>>501
カスタム関数がjsで書けるようになる。
現在ベータテスト中のはず。
またpython対応も進められてるはず。

504 :
ここぞとばかりに湧いてきよった教えたがりのプロさん達w

505 :
>>489
エクセルのグラフや統計ツールは場当たり的な作業で使うもので、自動化には向かない。
そういうのはpythonとかの方がいいよ。

506 :
>>505
エクセル並のグラフ作れるライブラリ教えてくれたら考える

507 :
ExcelのjavaScript対応なんて、Googleスプレッドシートの後追いじゃないの?
サーバーサイドじゃなくクライアントで動くなら助かるけど、
でたぶん、APIがあるだけで関数書式はVBAと同じ手続き踏まされると予感

508 :
excelは圧倒的な普及率が強み
多少使い勝手が悪くても使う理由

509 :
>>507
もちろんクライアントサイド。google spreadシートのはサーバーサイドでちょっと複雑な処理書くと制限に引っ掛かったりで非常に遅く、jsの仕様もes5相当の古い書き方しかできず辛い。
その点excelはedgeのjsエンジンであるchakraコアがそのまま動き最新の機能が使える。
まさかのasync/awaitまで使えて夢が広がる

510 :
dim rng as range
for each rng in selection.rows
以下略

こんな感じで複数行選択して各列に対して操作を行いたいんですよ
でその操作の中で行をコピー・挿入だったり削除だったりするんですけど、それがselection内だったりするとselectionそのものが変わっちゃったりするんです
複製された行に対しても操作しようとしたり、削除されて上に1行繰り上がって本来操作されるべき列が飛ばされたり
なんかいいアイディアないですかねぇ

>>487
同じことあった。ライブラリのバージョン違うと動かんのねあれ
客が使うオフィスのバージョン確認したわ

511 :
>>510
動作を理解していない馬鹿頭の問題だろ

512 :
どなたか教えて頂けませんか。
Debug.Printが毎回追記されていくのがうっとうしくて、下記のような記述をしました。

Private Sub im_del()
Application.VBE.Windows("Immediate").SetFocus
SendKeys "^a", False
SendKeys "{Del}", False
End Sub

Sub ABCDE()
Call im_del
Debug.Print "ABCDE"
End Sub

ところが、一瞬"ABCDE"の記述が出現した後、すぐ消えてしまいます。
"ABCDE"を出力したあとに、ctrl+A、Del、が処理されているように見えるんですが、これは何故起こってるんでしょうか?

513 :
間にwaitを入れてみようや

514 :
>>512
SendKeysはWindowsさんに伝言をたのむ命令
その伝言が伝わる前に直接連絡した方が先に届いてもおかしくない
DoEventsいれてみ

515 :
ここはほんとうに素晴らしいスレッドですね。 
>>461とか>>464とか>>471とか雰囲気悪くするだけだからもうこなくていいよw

516 :
>>515
こいつも雰囲気悪くしてるからw

517 :
>>516
おまえが一番雰囲気悪い

518 :
>>515
ゆとり世代?

519 :
2chに来て何言ってんだ
建前抜きにした罵詈雑言の罵り合いも殺伐とした空気も煽りも自演も2chの醍醐味だろう
綺麗なインターネットを求めてるなら実名でブログでもツイッターでもやりゃいい

520 :
pythonは次期Excelに搭載されないことが決定しただろ馬鹿

521 :
マジかーvbaとpythonとjsの悪魔合体楽しみにしてたのに

522 :
ゆとり世代の知恵遅れの人達はいちいち誉めてあげないとダメだよ

523 :
リアルではみんな良い人なんだろうな
そうだろ?
クソ野郎ども

524 :
そりゃ外にいる間は外向けの性格だからな

525 :
真夜中は別の顔って言うだろ?

526 :
オニーチャン(*・∀・*)エッチー!!

527 :
Sendkeysは基本避けるべき。
お手軽だからその時だけ動けば良い場合なんかに使うこともあるけど、制御できるようにWin32や別のAPI使うべきだよ。

528 :
ああ、でもイミディエイトは簡単にはいかないんだった。
Win32でどうにかしようとして一発でExcel落ちること多数。

俺もSendkeys以外で操作出来ないや。

529 :
>>520
これホント?
決定したの?

530 :
Pythonが使えるようになったとして、Rangeの扱いはどうなるんだろ?
xlRangeとか名前変えて凌ぐのかな。
xlPyter NoteBookとかもうワケがわからなくなりそうな気がする

531 :
プロどもウザいからレスすんな糞が

532 :
アマチュアの皆さんはプロの話についてこれないでしょう
あるのかしらないけど事務員板などに行って、そっちで同レベル帯の人達だけでディスカッションすれば捗るのでは?

533 :
むしろプロどもがどっか行けや

534 :
違いない。ここはVBA質問スレなんだからな

535 :
最近質問ないし

536 :
無いんなら黙っとけ

537 :
python実装するとかしないとかそういう話はどこで知るんですか?

538 :
スマートニュース

539 :
ID:Ojk7x3Ta
知的障害者?それともただの馬鹿?

540 :
ID:Ojk7x3Ta
重度の妄想癖のある統合失調症患者
近いうちに行政の方に保護される予定です

541 :
荒らし(プロ?w)が開き直って人格攻撃してるw

542 :
>>541
でVBAの質問は?
何か聞きたい事はないの?
ないならキエロ

543 :
質問です
エクセルでゲームを作っている初心者ですが
セルの背景に風景画を設定し、
それをたまに切り替える処理は可能ですか?
特にセル内にはアイテムjpgを表示して、その背面に風景画を
表示させたいのですが

544 :
普段事務系でVBAを利用しており大変役立っているのでVBAがボロクソ言われているのに衝撃を受けました。もっと良い方法があるのなら是非知りたいです。
他の言語の方がいいというお声をちらほら拝見したのですが、例えばエクセルで集計や管理しているデータを仕訳化して会計システムに読み込ませるようなケースでは他の言語の方が良い場合があるのでしょうか。
それとも、そもそもでエクセルを使っている場合はやはりVBAの方が向いているのでしょうか。
エクセル使っている時点で糞というご意見もあるでしょうが、、、

545 :
>>544
>エクセルを使っている場合はやはりVBAの方が向いているのでしょうか。
現状その通り、将来的には分からんってだけ

546 :
>>414
instr使って26*2回loop回して判定すればいいよ

547 :
>>544
データ入力まではエクセルでOK
表形式のデータ入力ならエクセルが便利ってのは事実だ

入力したデータを読み込み、なんらかの計算をして、別のシステムと連携する
といった処理は他の言語を使ったほうがいい
データの読み込みはExcel.Applicationのおかげでどの言語でもできるし各言語にもっと良いライブラリがある場合もある
一旦データを読み込んでしまえば後の処理はエクセルから独立して作ることができるのでエクセルの制約に縛られることがなく快適だ

VBAはイベントハンドラなどエクセルの操作を拡張するちょっとした処理を定義する場合に仕方なく使うものと割り切ろう
例えば表形式のデータ入力を補助するちょっとした処理を作りたいな、と思ったらVBAでOK

548 :
またパワーシェルキチガイやC#キチガイなどが降臨してくる悪寒 w

549 :
textboxが3つあって仮にABCとして、enterイベントでエクセル読み取ってlistboxに追加。追加されたものをダブルクリックしたらtextboxに入れる。

A→追加→dクリック→Aに追加
B→追加→dクリック→Bに追加

textboxに追加する際にtextboxを特定するにはどうしたらいいですか?

550 :
>>549
日本語をまともに書けるようになってから出直してこい
そんな頭だからわからんだけ

551 :
>>550
おまえじゃま

552 :
>>549
意味わかんねえから誰も答えらんねえ

enterイベントって何よ?そのイベントはどこから発生する設定なわけ?

"エクセル読み取って"とは?

listboxに追加されるのはエクセル?w

最後に、なぜlistboxからtextBoxに追加する?

553 :
>>549
実現したい事を一個づつ分けてみては?
ちょっと意味が分からない

554 :
エスパーしてみた

textboxが3つ(a,b,c)とlistboxが1つあって、
いずれかのtextboxに値を入力してenterを押下すると、その値がlistboxに追加される。
(その際に、どのtextboxから追加されたのかも情報として保持しておく)
listbox側でアイテムをダブルクリックすると、そのアイテムを元のtextboxに再度表示させる。

というような動作がしたいのではなかろうか?

555 :
説明下手ですまん。
textbox a b c3つ。
listbox 1つ。

listboxにはa b cにはそれぞれ違う入力候補が表示される。
textboxがフォーカスされるとエクセルから読み取ってlistboxに入る。
ここまでは出来た。

抽出された、listboxから選んでそれをダブルクリックでtextboxに入れたい。
その時に入れるべきtextboxの保持の仕方が知りたい。出来ますか?

556 :
>543も頼む

557 :
>>555
お前馬鹿なの?
オブジェクト名は何のためにあると思ってるの?

>>551
答えもしないお前が引っ込め

558 :
listbox1のリスト要素は textbox a,b,c選択毎に変わる。a選択時にはa用要素、b選択時にはb用要素...と。
ユーザーがリストの要素をダブルクリックした時に目的のboxに入力させたい。て話ね。
単にコードの内部で変数維持すりゃいんじゃないの?

559 :
>>557
そんな怒るなって

560 :
555げっち(´・ω・`)b

561 :
最後に選択したTextBoxを覚えておく変数を用意するだけだろ。

562 :
>>543
>>556
SetBackgroundPicture
ズバリそのもののメソッドあるじゃん
書き込む前にググるくらいはしようよ…

563 :
>>562
ありがとうございます
でもそれつわてどういうキーワードだと引っかかるんですか?

564 :
>>563
「セル 背景 画像 vba」でググっただけだよ
むしろどんな単語で検索したのかこっちが聞きたい

あーあと勝手に>>543はシート全体へ背景を表示したいと捉えたけど
文字通り「一つのセルに背景画像と他の画像を重ねて表示」させたいなら
AddpictureとZOrderをキーワードに調べてみて

565 :
>>512です。
SendKeysのctrl+A、Del、のあとに2秒も待機をはさみましたが、やはり"ABCDE"が出力されてからその文字列が削除されました。
検証したところ、環境のせいか何なのか分かりませんが、SendKeyはマクロが終わってから処理されているみたいです。
あきらめます。いろいろどうも。

566 :
うちで色々試してみたけど、少なくともWin10+Excel2016(64bit)の環境では
イミディエイトウィンドウのクリアがうまく動かない

なぜかSendkeysのところで警告音が鳴って(音だけでメッセージは出ない)、何も処理されてない感じになる
ネット上にもサンプルが色々転がってるけど、やってることはみんな同じだし、原因がよく分からん
DoEventsやSleepもあちこちに入れてみたけど変わらず

567 :
Win7で試し、XPで試し ははぁ〜ん、もしかして、これは、レガシーアーキテクチャーだったんだな、と
Accessだと、とっくに「SendKeys」は使うな とご託宣のシロモノ  理由は言わずもがな

568 :
しかしVBScriptやら他の言語では普通に使えてるんだよなあSendkeys

569 :
んな面倒なことしなくても、バックスペースをそのまま出力すればいいんじゃないの?
どこかでそんな作例見たぞ。

570 :
バックスペースでもデリートでもかまいませんが、
マクロ処理より「先に」SendKeysがしたい、というのが主旨でした。

別にSendKeysにこだわる理由もないのですが、どうにも他の手段も思いつきません。
みんな煩わしくないのでしょうか。

571 :
>>569
そもそもSendkeysがまともに動かない
BackSpaceもみんなダメ

572 :
Sendkeysじゃなくて、Debug.Printで出力しろって言ってるんじゃないのか
出来るかどうかは知らんけど

うちの環境でSendkeys試したら、それ以前にイミディエイトウインドウがアクティブにならんかったわ

573 :
>>572
確かに検索するとバックスペースを大量に出力する方法も出てくるけど2016ではだめだった
制御コードはみんなスペースに変換されて出力される

イミディエイトウィンドウをアクティブにするには、日本語版では "イミディエイト"
"immediate" は英語版

574 :
もうメモ帳で立ち上げたテキストファイルにリアルタイムで追記していくでいいじゃん

575 :
>>573
>イミディエイトウィンドウをアクティブにするには、日本語版では "イミディエイト"
いや、それはわかっている
SetFocusしてもアクティブにならんかったんだよ
まあ古い環境なんで追試するほどのもんでもないしどうでもいいが

576 :
Excel2010、2013、2016
Excelに詳しくない人が何でも貼付をする為、書式がグチャグチャになっていく・・・。(値に貼り付けが基本と説明してもわからず・・・。)


こういうのを作ったけど不具合が出てしまう。(貼付が出来る。)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next

Target.PasteSpecial xlPasteValues

Application.CutCopyMode = True

End Sub



「値に貼付」以外の貼付ボタンを非表示かロックをする方法は無いでしょうか?

577 :
>>576
何をしたいのかよくわからんけど書式なんて無視しとけばいいんじゃね?

578 :
問答無用で値のみに強制するならchangeでコピーundo値貼り付けでいけそうだが
共有ファイルだと他の人に迷惑だし全体の書式を修正するコード書いたほうがいいんじゃないの

579 :
SubとFunctionの違いは
返り値がないかあるかの違いだけですか?

580 :
英語やってる人なら
x イミディエイト
o イミーディイット
のカタカナにしたいな。

581 :
>>577
すみません。
書式だけではなく、セルの保護まで設定される。
コピー=セル保護有
ペースト=保護無のところに保護有に切り替えてしまう。

582 :
>>578
そのパターンもありますね。
明日、チャレンジしてみます。

583 :
>>547
539です。遅くなりましたが詳細ありがとうございました。
他の言語を使った方がいいとのことで、例えばどのようなものがおススメでしょうか。経験があられましたらお知恵をお借りできましたらありがたいです。

584 :
>>583
馬鹿には無理だからこのままExcelを使ってろ

585 :
>>583
横だが、
 > 普段事務系でVBAを利用しており大変役立っている
本業があるならこれでいいと思うよ

ここの人達(特に口が悪い人たち)は、目的を忘れて道具をありがたがる傾向があるけど
本業が別にある人は、そんな人たちの道楽に付き合う必要はないよ

もし、今の業務を大幅に見直したいとか自動化したいとか考えているなら
自分で何か言語を習得して…、ではなく、そこはプロのソフト屋さんに任せるのが一番
そして本業として求められるのは、システムの要求仕様をきっちりまとめる事
本末転倒とならないためにも、要求仕様をまとめることが一番大事ですね

586 :
> 普段事務系でVBAを利用しており大変役立っている

だけなら全く問題ないんだけど
だんだん進捗管理したいとか文字コード変換したいとか言い始めるやついるからな
しかもVBAしか知らないからVBAでやろうとして手に負えない

プロに任せろってのがその通り過ぎる

587 :
Excel使うってのに、わざわざ他の言語勧めるやつは何か勘違いしてるように思う
VBなんて仕事する上での通過点でしかないから最低限動けばいいんだよ

職場で違う言語提案して稟議通せたやつがどれだけいるよ
完全にマイオナじゃねーか

588 :
>>587
そいつら仕事してないからw

589 :
VBAってエクセル縛りがあるから逆に大変だよね

590 :
Ruby は、ファイル・テキスト処理では、無敵!

たのしいRuby 第5版、2016

591 :
逆に言えば、ExcelのしごとをするのにVBAが最適なのは当たり前
Excelの仕事はテキスト・ファイル処理だけじゃないのにRubyが無敵だとVBAのスレで言い出すバカ

592 :
こっちがいい

かなしいRuby 第1版、2018

593 :
唐突にRubyとか言い出すのはバカだが
ファイル・テキスト処理はExcelの仕事でもVBAの仕事でもないだろ…

594 :
エクセルの仕事はVBA

まあ一理あるけどエクセルで全てが完結する仕事ってそんなにないんだよね
ほとんどの仕事でプラスαがあってそのαを処理するのにVBAは果てしない苦痛を要求してくる

なのでエクセルで仕事する部分を最小化するように設計して
他の言語を使って楽しちゃおうってわけ

595 :
プログラムの勉強ちゃんとやるってんならサンプルの多いc#がいいと思う
事務仕事っていってもofficeしか弄らないなんてことはないだろうし
ちょっとしたGUIソフト作れるようになったら楽できる部分も出てくるはず

596 :
保守やユーザーサポートしかやらん社内SEには、高い開発環境なんて買うてもらえへんのや。。。

597 :
別にαの処理もVBAで余裕だが。
単純にVBAのスキルが足りなくて苦痛な処理しか書けないだけだろ。

598 :
別にC#でも良いんだけど、それでもExcelの場合はVBAの方が良いことも多いからね。
よっぽどVBAが不利になる場合以外はVBAで書いちゃうな。

599 :
VB6のことなんだけど、formにいくつかのtextbox等があって順番通りに入力させたい時ってenterキーじゃいないけどわざわざ仕込むのが当たり前?それともタブで移動が当たり前?

600 :
マルチラインでもないテキストボックスでEnter飲み込んだらデフォルトボンタンが機能しないじゃん
たまにそういうのに出くわすけど嫌い

601 :
>>599
ホストの移行でさんざんそういうの書いたけど
Windows的には>>600のいうようにEnterはデフォルトボタンだから
タブで移動させるようにユーザー教育するのが正解
桁が決まってたらシリアル入力のように自動で飛ばしてもいいかな

ただデフォルトボタンで画面確定されてしまうのがウザいってんで
デフォルトボタンを無効化したりすることも多かった
Webに移行してもデフォルトのsubmitさせないとか

602 :
>>599
馬鹿はRよ
スレタイトル読めないのか?

603 :
他の言語を現場で使うのを許されるほど裁量与えられてんのかな
VBはexcelだからノーカンみたいな屁理屈で通ってるけど
自分がいない時に誰もフォロー出来ないようなシステムは使わせてもらえないわ

604 :
vbaでwebサイトのhtmlを取得しようとしてるんですが、うまく行きません。
お知恵を拝借できませんか。

完全にグーグル検索に頼ったやり方で、
Dim source As Object
Set source = CreateObject("MSXML2.XMLHTTP")

source.Open "GET", "https://www.kyounoryouri.jp/recipe/42799_.html", False
source.Send

Do While source.readyState <> 4
Loop

Debug.Print source.responseText
Set http = Nothing

という感じで、NHKの「みんなのきょうの料理」のレシピ記事を取得しようとしています。
ところがsource.responsetextには、htmlのフッター領域しか入っていません。
なぜこんなことが起きるのでしょう?
試している限りだとフッターしか引っ張れないページとhtmlを全部取得できるページがあるのですが、違いが分かりません。、

605 :
行数多いから単にイミディエイトウィンドウに表示しきれてないだけじゃないの

606 :
>>594
vba以外の言語で書くべき+αの仕事て具体的に何を想定してるの
うちでは多分大したことしてないから全部vbaで完結してる

607 :
>>604
そのままコピペして試したけど、それで問題なくページ全体が入ってきてる
いっぺんブラウザ(IE)のキャッシュをクリアしてみ

608 :
そのページが、HTML だけで完結しているとは限らない

まず、空のHTMLを送ってきて、後に、JavaScript でサーバーにアクセスして(Ajax)、
内容を取得して、HTMLにはめ込んでいるかも知れない

例えば、2ch のスレも、そういうやり方

だから皆、Ruby などで、Selenium Webdriver を使って、ブラウザを自動操作する。
ブラウザの動きと、全く同じ動きをするようにする

609 :
>>606
画像処理(.NET使えないと面倒)
UIAutomation(GUI操作はどうしてもウィンドウ見失ったり不安定なのでtry-catch使えないの辛い)

という理由でこの辺はPowerShellでやってる

610 :
ブラウザ(IE)を使ってる人がいるんだ

611 :
>>609
UIAutomationはVBAでも使えるのを知らないからこういう発言になる。

つまりVBAのスキルが低くて使いこなせてないだけというわけだ。

画像処理?
これまたスキルが低いだけじゃね―の?
GDIやGDIPlus程度ならVBAでも使えるぞ。

612 :
>>608
そういう場合はIEオブジェクトを使う手もあるね。
MSXML2.XMLHTTPやhtmlfileだと早いけどブラウザ操作じゃないからね。

613 :
使えるからってExcelの仕事じゃないよ

614 :
>>613
PowerShellでも無いだろ。
C#

615 :
C#なら分かるが。

それにExcel絡みになる場合(操作した結果表示された所からデータ取ってくるとか)も結構ある。

616 :
>>611
誰もVBAで実現できないとは言ってないだろ…

上で書いてるように「面倒」なんだよ

VBAでSystem.Drawing使用時と同じくらい簡潔な画像処理コード書けるか?

UIAutomationもそう
VBAでも使えるのは知ってるけどどうしてもだらだらと長くなる
UIA extensions抜きでもパイプライン使えるPowerShellの方が綺麗に書ける
エラーも捌きやすいし

向いてる向いてないはあるんだからVBAでコード書くことにこだわる必要ないでしょ?って話だよ

617 :
VBAでなければ非効率的だと確定的な処理を除いて全部、他の言語のほうが良い
誰だって楽に多くの収穫を得たいからね

618 :
>>605

>>604です。まさしくご指摘の通りでした。
テキストファイルに出したら全部入っていました。
ありがとうございます。

619 :
マクロが上手く動かないと言われ、確認したら非表示にしてたグラフ作成用テンプレシートシート消されてたり、セル削除上詰めとかされてて参照セルがズレてて上手く動かないて事が何度かある
使い方シート的なのを用意して注意書きしてるけど利用者はまともに見てないみたい
こんな時はどう対処するのが一般的なの?
消される可能性踏まえてエラー処理書いたりは流石にしないよね?

620 :
>>619
対処しない。もしくは説明シートをよく読めと指導、終わり

621 :
例外処理について質問です。本とか見てると例として0除算なんかがよく上がってます。適当ですけど

dim a as long
dim b as long
dim c as long
a = 10
b = 0
on error goto errorHandle
c = a/ b
exit sub
error handle
msgbox "0で割ってます"

みたいな?でもこれ例えばif(b = 0) then 〜 exit sub みたいなの入れて弾いちゃっても同じことできますよね
どういうときにerrorを使えばいいのかタイミングがよくわからないので教えてください

622 :
>>621
お前みたいな無知蒙昧な馬鹿にはわからない原因のエラーが出た時にはどうするか考える頭がないのか?

623 :
>>619
保護かけといても変更されたら対応しない

>>621
エラーがでるかどうか事前にわからない場合に使う

624 :
>>619
テンプレートシートはveryHiddenにする。

セルを削除したり勝手に追加したりするヤツは必ずいる。ロックしても「ロックがかかっていて使いづらい、パスワードを教えろ」と言ってきたり。
ふざけんなと思いながら無視してると「あいつはパスワードも教えない、性根が腐ってる」とか言われたりw

625 :
>>619
> 非表示にしてたグラフ作成用テンプレシートシート消されてたり
Sheet.Visible = xlSheetVeryHidden

> セル削除上詰めとかされてて参照セルがズレてて
シート保護もしくは名前を付けて名前で参照

626 :
なんでマクロ使えない奴らに話の主導権握られてるんだ
会社では作成者が仕様決めるんだから、従わない奴が悪いって話にしないと

627 :
>>616
お前が言ってるのは「高級言語Basic最高」ってのと同じなんだよ。
ライブラリの有無の話じゃねーか。
今は知らねえがUIAutomationじゃ右クリック出来ねえとかライブラリの問題の場合もあるだろ。
俺は面倒だったけどPowerShellでもSendMessageでなんとかしたりしたが、それと一緒じゃね?

向いてる向いてないはあるがExcel絡みの場合にはVBAの方が向いてることも多い。
UIAutomationだって、単に操作して終わりならVBAじゃやらない。
問題はExcelが絡んでくる場合だ。

後は拘りだろう。
VBAから実行ファイルをShellなんかで呼び出して、実行ファイルは自分が終了時にファイルなんかに実行結果を書き出し、VBAがそれを読み込んでExcelに書き出すなんて処理はかっこ悪いから俺はやらねえ。
そういう場合はVBAで完結するように書くね。

628 :
「荒らしにレスする者もまた荒らしである」

629 :
>>628もまた荒らしである

630 :
>>629こそ本物の嵐なのだ

631 :
嵐見参!

632 :
veryHidden ?
知らないな

633 :
ありがとうございます
veryhiddenはなんか見た記憶があるけど忘れてました

634 :
https://www.kentem.jp/product-info/dekispart/
この 入札・技術提案・施工計画 って画面、どう見てもExcelなんだけど
いいなー、これ、いいなー
って書けば誰か教えてくれるスレッドですか?
リボンのコマンドはともかく、右端の「ツリー表示」が知りたいんですけど

635 :
>>634
これはExcelじゃない
.Netアプリ

636 :
>>635
思いっきりExcelって書いてるけどね。
2つめの図でしょ?

637 :
VSTOって言いたいのかもしれない

638 :
カスタム作業ウィンドウって呼ぶみたい。
https://blogs.msdn.microsoft.com/saikik/2008/04/28/973/

639 :
インタラクティブな操作の拡張もC#でやったらVBAの出番がなくなっちゃう
ひどい

640 :
左上のアイコンが2007の頃のだし、大体がタイトルバーにExcelて書かれてるし
互換モードとかご丁寧に出てるしで、Excelと断定してたんです
右端に「ツリー表示」って出てる画像はそれっきゃ無いから間違いようが無いしで 省略してごめんなさい

脊髄反射の人へのエクスキューズはこのぐらいにしといて (←皮肉
そうですか、 カスタム作業ウィンドウねえ 知らなかった すごい助かりました
VSTOもためになります  これを手掛かりに必死こいて実装に向けてがんばります <<632-633 さん、さすがです

641 :
ここまでしてVBAにこだわる理由はなんなんだろう
信仰心というやつなのかな

642 :
VSTOとか、EXCELにはこだわっててもVBAにはこだわってないわけだが

643 :
>>642
excelにVBA以外って何があるの?

644 :
エクセルで違う言語持ち出す奴は職場でちゃんと共有できてるのか?
公開オナニーみたいな状態になってなきゃいいけど

645 :
社内で共有するならVBAはありえないね
少なくとも1人の固定メンテナが決まってること
ドキュメントをブラウザで見れるように整備すること
テキストでバージョン管理すること
十分テストしたパッケージを配布すること
配布は社内のパッケージリポジトリで行うこと
これが社内で共有する時の基本な

エクセルだとバージョン管理もテストもしてないマクロをメールやファイルサーバーで配布
ろくな説明もなく飽きたらメンテナンスをやめて放置
みたいなバカな事をする人が湧いてくる

646 :
>>645
どんなとこ勤めてんの?

647 :
>>643
とりあえずVB.NETとかC#とか

>>644-645
職場とか社内で共有とか
想定する範囲が違いすぎて議論にならんわ

648 :
すまん、>>645みたいな仕事を外注せず社内で作らせる職場なんてあるのかと思ってな

649 :
SIerやソフト屋さんははそれが今時だろうが、世の中色んな業種があり、ユーザーウェアとしてのExcelはそれなりに使い勝手がいい

650 :
.NETで組めばすぐ終わるようなソフトをVBAでとか言われるとテンションガタ落ち、さらにそんなに掛かるの?とか言われるとイライラがとまらん

651 :
.Netなら安く作れますよと提案すりゃいいじゃん

652 :
Netでやるとして、その部署(会社)にあなた以外にそれをメンテ出来る人居るんですか?
ま、これはVBAでやるにしても同じだけど

653 :
殆どの場合、VBAでもすぐ終わるしな。
Excel関係ないのに無理にVBAってのは良くないが。

それにVBAなら作った奴が辞めてもどうにかなる場合も有るけど他言語だとどうにもならなくて外注しなきゃならなくなることもある。

654 :
VBAで組めるようなもんを他の言語で組んでもなんとかなるだろ。VBAで組みなおせばいいんだからw
そもそもそこまで個人に依存してる会社が問題だわ

655 :
Excelが関係ないならそうだがな。
関係ないならVBAで組むわけ無いんだから。
わざわざ他言語で組むんだから何で?となりゃややこしい場合ということになる。

656 :
エクセルトリガーにしてでOutlookの処理やってるよ

657 :
VBAと.net論争は不毛だよね
俺も最初は何で今更VBAをって思ってたけどね
netからしたらそもそもデータを扱うのにDBじゃなくてエクセル?ってなんだよって思うけど
エクセル縛りならVBAが最適なのは間違いないし
かと言って今からVBAを覚えるのもなぁーって事なんだよね
で それならC#でWinフォームを新規で作った方がデータならより複雑な処理も便利で簡単かつ高速で出来るかなって思うからね
アップデートもオンライン配信だし
でもエクセル縛りならVBAの一択なのは間違いない

658 :
エクセルVBAができればデカイ顔できた時代と違って
今はエンドユーザーにもある程度のITリテラシーが求められている

REST APIがユーザー向けに提供されてるとかちょっと前までは考えられなかったが
今じゃ非IT系のビジネスマンでも当たり前のようにリクエストを飛ばす時代になってしまった
本末転倒な気もするがテクノロジーが進化するとユーザーも進化しないといけないんだな

専門職に任せっぱなしじゃまずいって流石に政府も気が付いた
なので小学校でプログラミングを必修化などして慌てて対応しようとしてる
子供達はいいが大人はだれも面倒を見てくれないから自分で学ぶしかない

659 :
>>658
>専門職に任せっぱなしじゃまずいって
その専門職が「IT土方」と呼ばれて底辺職種になっちゃってる。誰が本気で取り組むかっての。
数年後には無かった事になってるよ。小学校の教諭にプログラミングを教えろって無理だし。

ところで、VBAができればデカイ顔ができた時代ってあったのか?
俺の知ってる限り、そんな話は聞いたことがない。

660 :
>>659
噂ではいろいろ言われてるけど実際は都合のいい便利屋さんになるだけだもんな
職場によってはVBA禁止だし

素人がVBA出来るようになればヒーローになれると妄想してるだけだろう
どんなにVBAで便利な業務ツールを作ってもたいして評価されないのが普通だわ
そんなもん覚えるなら効果的なゴマすり覚えるか昇進試験頑張ったほうが費用対効果は高い

中小零細なら評価してくれる会社があるのかもしれんけどな

661 :
>>660
世の中にはIT企業以外も存在してるしむしろその方が多い。
そもそもプログラム書ける人がそんなにいない。
だから、VBAですらできれば評価される世界はたくさんあるよ。

662 :
>>661
IT企業以外の大企業でVBAを評価してくれる会社なんてあるの?
聞いたことないな。VBA禁止とかVBAはズルとかなら聞いたことあるが
やっぱ大企業のオフィスワークなら昇進試験(資格試験含む)頑張るの一択でしょ?

昔働いてた企業で他のグループ会社の営業がPC得意だけど評価されないから
PC苦手ということにしてると言ってたの聞いた時には笑ったわ

663 :
VBAはズルと書くからお里が知れる。
働いたこと無い人は正直に申告しような。

664 :
>>662
>昔働いてた企業で他のグループ会社の営業がPC得意だけど評価されないから
>PC苦手ということにしてると言ってたの聞いた時には笑ったわ

これが現実なわけで。マジでプログラム書けるとか言ったら変人扱いされる、つうかされてる。
なのに、面倒な事務処理があって残業したくない、メンドくさいとなると「すき屋の牛丼奢るから作ってくれ」とか言いやがる。
まぁ、内容聞いて面白そうなネタだったらやるけど、簡単過ぎてバカバカしい時は「あー忙しい」と言ってやらない。

665 :
>>659
おまえがVBA出来たって所詮無能なんやから当たり前やろw
普通の人はデカい顔しとるし実際尊敬されとんでw

666 :
>>663
大企業だと個人プレーよりチームワークを大事にする会社があるんだよ
とりわけチームワークを最重要視する会社ではVBAがズルになるケースもある
他には、その人しかメンテナンス出来ない状態になるのを避けるためのということもある

VBAツールがどうしても必要なら業者や派遣を呼べばいいというのもある

667 :
話し相手がいない老害が絡んでるだけならまだしも
今更vbaかその他かなんて議論無意味すぎて草も生えない
そもそも想定してる前提が違いすぎて議論にすらなってない

雑談続けたいなら前提合わせれば?ただし老害は除く
・処理の難易度(単純な行数じゃわからんが十数行で片付く仕事なんてほぼ簡単な処理だろ
・処理する人のスキルセットと能力(プログラムしらねーなのか、Cなら知ってるとか
・処理の影響範囲(社内のみとか外販するとかその結果を何に使うかとか
・処理を実行する環境の制約(ネットにつながってねーとか、office以外インストールできねーとか

こういうの考えるのこそこのスレの大多数であろう非プログラマーで
ユーザー側に近い人に求められるスキルじゃねーの?ただし老害は除く

668 :
>>666
その場合、VBAどころか他の言語も使えないと思うけど

669 :
実際のところVBAでどんなツール作ってんだ?

670 :
株のツールなら作ってます

671 :
>>665
>普通の人はデカい顔しとるし実際尊敬されとんでw
という夢を見たのかニート爺W

672 :
>>670
株のツールでVBAを使うメリットは?

673 :
小さいプログラムの間は、VBA でも良かったけど、
複雑なプログラムになるに従って、Ruby の勉強コストと逆転してくる

大規模になるほど、Ruby などの方が、バグが少なく、可読性が高くなってくる。
保守コストが、言語の勉強コストを上回るようになってくる

プログラムの複雑性というのが、累乗的に加速していくから

最終的には、たった1行直すだけでも、全システムの調査が必要になってくる。
ソースコードがスパゲッティ・泥団子w

674 :2018/07/14
もっと大規模になるとrubyも???ってなってくるぞ
そうなったらもう立派なプロだ

***Javaのオススメ入門書*** 『創るJava』 3.0
【最強CUI】PowerShell -Part 2
WPF(.NET4.x, .NET Core) GUIプログラミング Part24
推薦図書/必読書のためのスレッド 81
くだすれFORTRAN(超初心者用)その6
MFC vs .NET
国産オープンソースDIコンテナSeasar2 その16
Ruby 初心者スレッド Part 65
Excel VBA 質問スレ Part62
C++相談室 part144
--------------------
【関西bP】関大アイスホッケー部【打倒早稲田】
【日本国籍】アキラサンティラン【期待の17歳】
コザキユースケアンチスレ Part.3
ロ イ ド メ ガ ネ
米空軍に初の黒人トップ ※暴動のずっと前にトランプが指名していました
菊地成孔の粋な夜電波 Part11
【スクープTV Scoop!tv】寺やる!寺井一択&もっくん★13
ロッドマンとかいうプロショップw
六本木【スクエアビルを語れ!】第A弾
【VG】カードファイト!!ヴァンガードpart1558
【身長のハンデを乗り越え】武田久【右腕リリーフエース】
表現者クライテリオン19
【芸能/サッカー】三浦りさ子 夫カズと韓流ドラマ聖地巡礼「まさか主人と韓国来れるとは!」
【Newton・パリティ】科学雑誌【日経・数理科学】
24時間!!2chねら〜で繋ぐ全国吉野家の旅21杯目
姓名判断も四柱推命も悪いオレはどうすればいいのか
【ギズム】GISM【インスタ】
◆◇◆ 横浜F・マリノス part1818 ◆◇◆
始めてBAR行こうとおもうんだけど…
【雑談】【マルチ】星のドラゴンクエストを楽しむ★144【楽スレ】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼