[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/08 10:06 / Filesize : 292 KB / Number-of Response : 1011
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part65



1 名前:デフォルトの名無しさん mailto:sage [2020/03/17(火) 16:27:20.88 ID:hh8LiIgR0.net]

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

※前スレ
Excel VBA 質問スレ Part64
https://mevius.5ch.net/test/read.cgi/tech/1575297834/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

80 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 00:31:59.82 ID:N3mE/9bh0.net]
図形のグループ化についてです。

ショート上に円が無数にあってその円の中にテキストがあります。

これを円と円の中のテキストをそれぞれグループ化してShapeの名前をテキスト名にするにはどうしたら出来ますか?

81 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 00:52:28.07 ID:tkT1AEpsM.net]
>>80
グループ化はGroupメソッドを使う
For Eachを使えば図形がいくつあっても関係なく同じようにできる

82 名前:デフォルトの名無しさん (ワッチョイ b57c-K+F1) mailto:sage [2020/03/27(金) 01:56:14 ID:U7Hbc3is0.net]
>>80
shapeオブジェクトでいじる

83 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 07:59:14.92 ID:PIWgxOzWr.net]
図形をVBAで複雑にいじろうとすると悲しみしか生まなさそう

84 名前:デフォルトの名無しさん (ワッチョイ 55e3-pf+t) mailto:sage [2020/03/27(金) 14:44:48 ID:Kq8lniUe0.net]
Worksheets("min").Range(Cells(N, 2), Cells(N, 100)) = "999"
これで複数セルに一括入力したいのですが
アプリケーション定義またはオブジェクト定義のエラーです
と出ます。
何がいけないのでしょうか?

85 名前:デフォルトの名無しさん (ワッチョイ d9da-Cd0d) mailto:sage [2020/03/27(金) 14:53:12 ID:8yKTqVer0.net]
Nを定義してないんじゃない

86 名前:デフォルトの名無しさん (ラクッペペ MM96-6Ghe) mailto:sage [2020/03/27(金) 15:00:54 ID:n40dB020M.net]
cellの前にもシートがいる

87 名前:デフォルトの名無しさん (ワッチョイ 55e3-pf+t) mailto:sage [2020/03/27(金) 15:04:48 ID:Kq8lniUe0.net]
With Worksheets("min")
.Range(.Cells(1, 1), .Cells(20, 2)) = "999"
End With

できました^^ありがとう

88 名前:デフォルトの名無しさん (アウアウエー Sada-pf+t) mailto:sage [2020/03/27(金) 15:09:58 ID:Yr4iTEmOa.net]
それでいい。



89 名前:デフォルトの名無しさん (ワッチョイ ad49-iBrl) mailto:sage [2020/03/27(金) 15:11:53 ID:DMhVWYPv0.net]
いえいえ

90 名前:デフォルトの名無しさん (アークセー Sx79-yXVd) mailto:sage [2020/03/27(金) 15:32:49 ID:YTZoRU62x.net]
検索して違うシートから値を 持ってくるマクロで持ってくる値が0以下(マイナス)ならば
違う列に転記させたいのですがwithエラーが発生してうまく動きませんでした。

Dim i As Long, c As Range, e As Range, wS As Worksheet
Set wS1 = Worksheets("明細1")
With Worksheets("data")
  Set c = wS1.Range("D:D").Find(What:=.Cells(i, "B"), LookIn:=xlValues, LookAt:=xlWhole)
  If Not c Is Nothing and wS1.Cells(c.Row, "Z").value < 0 Then ←ここでエラー
.Cells(i, "V") = wS1.Cells(c.Row, "Q")
  ElsIf Not c Is Nothing and wS1.Cells(c.Row, "Z").value >= 0 Then
.Cells(i, "X") = wS1.Cells(c.Row, "Q")

またマイナス値をプラス値に変換したく
.Cells(i, "S") = abs(Cells(i, "S"))

としましたが小数点が消えてしまいます。
-77.00が77になってしまうのですが77.00としたいです。

91 名前:デフォルトの名無しさん (ラクッペペ MM96-6Ghe) mailto:sage [2020/03/27(金) 15:39:00 ID:n40dB020M.net]
cがnothingの時c.rowがエラー

バラせ

92 名前:デフォルトの名無しさん [2020/03/27(金) 15:47:38.09 ID:LyEUyxQ10.net]
馬鹿がゾロゾロ出てくるのは何で?

93 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 15:50:59.76 ID:DMhVWYPv0.net]
春休みだから

94 名前:デフォルトの名無しさん (アークセー Sx79-yXVd) mailto:sage [2020/03/27(金) 15:54:33 ID:YTZoRU62x.net]
>>91

If wS1.Cells(c.Row, "Z").value < 0 Thenでもエラーが出ます
With Worksheets("data")が邪魔をしてるとかですか?

95 名前:デフォルトの名無しさん (ワッチョイ f6f7-DNZ3) mailto:sage [2020/03/27(金) 17:17:35 ID:zsNWkQiw0.net]
"Z"で指定できたっけ

96 名前:デフォルトの名無しさん (ワッチョイ 8101-yKOS) mailto:sage [2020/03/27(金) 17:31:46 ID:jaIOieAQ0.net]
>>94
VBAは関数や演算子の引数は全て渡される前に値を計算するんだよ

だから Not c Is Nothing が真じゃないときは wS1.Cells(c.Row, "Z").value < 0 を評価しないように
if Not c Is Nothing then if wS1.Cells(c.Row, "Z").value < 0 then ...
としないといけない

あとCellsプロパティは見にくいんで範囲に名前つけるかテーブル化してRangeプロパティで呼んだ方がいい

97 名前:デフォルトの名無しさん (ワッチョイ ad2c-yXVd) mailto:sage [2020/03/27(金) 21:24:53 ID:N7XAdwe70.net]
>>92
答らえれない馬鹿以下の癖に?

98 名前:デフォルトの名無しさん mailto:sage [2020/03/27(金) 23:01:00.96 ID:7yWnOCeY0.net]
範囲に名前はなぁ・・。
上手く使いこなせればいいが、
みんなで共有するファイルに使うと、
知らない間に#REFだらけになってるwwww



99 名前:デフォルトの名無しさん [2020/03/28(土) 04:38:00.47 ID:vMIAuVeU0.net]
>>71

レスありがと

標準モジュールに書いてない。
しばらく、やってなかったんで忘れていた。
すみません

100 名前:デフォルトの名無しさん (ワッチョイ b140-yKOS) mailto:sage [2020/03/28(土) 15:07:25 ID:m/WQBFmt0.net]
>>98
異常時に例外が投げられるように設計するのは普通だと思うんだが・・・

101 名前:デフォルトの名無しさん mailto:sage [2020/03/28(土) 19:20:50.03 ID:rI/k2Pjrd.net]
>>100
名前を付けるのは、コードと関係無い所で実装されるので個人的には絶対使わない。
というか、Cellsを使うよ。
2次元配列的にもぴったり来るし。
寧ろ、Rangeの方が使わない。
尤も、Cellsでも列を文字で指定するのはやらない。
AF列が何列目か分からないって?
イミディエイトで?Range("AF1").Columnとでも入れてみろ。

102 名前:デフォルトの名無しさん (ササクッテロ Sp79-CIkl) mailto:sage [2020/03/28(土) 20:14:42 ID:ihCuPYYIp.net]
>>101
で、コメントで何列かとか、項目名とか書くわけ?

103 名前:デフォルトの名無しさん (ワッチョイ a9ad-yXVd) mailto:sage [2020/03/28(土) 20:37:45 ID:YbqXlWqq0.net]
>>96
>>101
名前を付ける派
可読性が高い方が良い
VBAは見にくいコードが多い

104 名前:デフォルトの名無しさん (ワッチョイ b140-yKOS) mailto:sage [2020/03/28(土) 23:45:34 ID:m/WQBFmt0.net]
>>101
名前定義が弄られるってことはロックしないで使うんでしょ
猶更、セル挿入なりで意図した場所とズレてても気づかずに成功し続ける方が危険だと思うんだが
で、セルを挿入したい時も一個一個数値をずらしていくの?

ワークシートの見た目が二次元配列である事とコード内容を一致させる必要性も感じないんだが、
もしかしてハードコーディングしてるのか?

イミディエイトウインドウで毎回インデックスを調べろっていうは面白すぎるから止めて欲しい

105 名前:デフォルトの名無しさん (ワッチョイ 091f-hvDm) mailto:sage [2020/03/29(日) 00:11:14 ID:JMfmjWXB0.net]
Shapeの当たり判定の計算方法を教えて下さい。

基準の円のShapeにTextBoxが当ってたらTrue、当たって無ければFalse
円は選択時の□の面積じゃなく実際の円の大きさ。TextBoxは選択時の□の大きさ。

106 名前:デフォルトの名無しさん (ワッチョイ 79ac-iBrl) mailto:sage [2020/03/29(日) 00:41:59 ID:Q4J2OaKi0.net]
なぜそんなことを

107 名前:デフォルトの名無しさん mailto:sage [2020/03/29(日) 01:29:27.30 ID:Iv7ta0000.net]
>>105
表示位置とサイズから比較したらいいんじゃね

108 名前:デフォルトの名無しさん mailto:sage [2020/03/29(日) 01:42:07.54 ID:hSuS8nXs0.net]
当たり判定だからゲームじゃないの?
Corei世代でも60fpsでないから使いたくないけど。



109 名前:デフォルトの名無しさん (ワッチョイ 0dce-Cd0d) mailto:sage [2020/03/29(日) 08:29:34 ID:sBDU9ajX0.net]
>>105
専用の関数などは用意されてないので、TextBoxの頂点と円の座標を比較したり、円の中心からの距離を三角関数で計算して調べるしかない

110 名前:デフォルトの名無しさん mailto:sage [2020/03/29(日) 09:06:15.85 ID:hrvcX8VW0.net]
VBAであえてゲーム作ったりするのは
芸ではあるけど開発効率的に筋は悪いよね
グラフィックにこだわるなら別言語推奨

111 名前:デフォルトの名無しさん (ワッチョイ 4191-tYYp) mailto:sage [2020/03/29(日) 19:07:35 ID:+LkL5rVp0.net]
>>102
普通は定数で行、列を宣言するわな。

>>103
見にくいコードは書いてる奴の力量次第だろ。

>>104
ロックはしない。
そんなもんは解除されるかもしれんし、当てにしない。
というか、作ってるもの次第だね。

ワークシートの見た目と二次元配列を一致させるとか笑わせるなあ。
少し慣れた奴なら列も数値で扱うのがぴったり来るんだよ。
何故なら、最初から二次元配列的に考えるから。

VBE上に自作のメニュ―作って、入力するだけで列名←→列数はわかるげとな。
作る力量無い奴はイミディエイトで調べりゃ良いだろ。
VBEのCommandBerでイベント扱うのはクラスが必要だし、上級者の領分にはなるかもな。
VBE弄るVBAは会社じゃ使わないから通常のCommandBarでメニュー作ってやっても良いんじゃね?
どっちにしても時間は考えることに使ってるんで、毎回イミディエイトで調べても大した話じゃね―んだわ。

112 名前:デフォルトの名無しさん mailto:sage [2020/03/29(日) 19:28:33.88 ID:Gw3heoMsM.net]
>>63
今の若いヤツらはそういう説明じゃ200%挫折する。普段の業務を自動化っていう感覚がわからないそう。やっぱスマホタブレット世代はPC=ワープロにしか思えんのかもな。

113 名前:デフォルトの名無しさん (スププ Sdb2-Ik0M) mailto:sage [2020/03/29(日) 20:04:11 ID:83saJEjVd.net]
若いほうがわかりそうなイメージあるが

114 名前:デフォルトの名無しさん (スププ Sdb2-Ik0M) mailto:sage [2020/03/29(日) 20:07:10 ID:83saJEjVd.net]
>>111
ロック外されたくないならパスワード付ければいいじゃん

115 名前:デフォルトの名無しさん (ワッチョイ 4191-tYYp) mailto:sage [2020/03/29(日) 20:28:31 ID:+LkL5rVp0.net]
>>114
パスワードwww

116 名前:デフォルトの名無しさん (ワッチョイ 9201-aXsr) mailto:sage [2020/03/29(日) 20:55:58 ID:wDs4yIM00.net]
>>111
> VBE上に自作のメニュ―作って、入力するだけで列名←→列数はわかるげとな。
まさか自慢じゃないよね?w
傍から見てたら馬鹿なことしてるなとしか思えんし

117 名前:デフォルトの名無しさん (ワッチョイ 12ad-At9V) mailto:sage [2020/03/29(日) 22:56:25 ID:WhhHvRXO0.net]
共有編集可能にしたら更新は5分間隔だけどVBAとかで1分以内にできないかな?複数のパソコンで映してる同じエクセルファイルの内容を別のパソコンから共有編集で編集して保存したら1分以内に複数のパソコンにも表示を反映させたい。

118 名前:デフォルトの名無しさん (アウアウエー Sada-pf+t) mailto:sage [2020/03/30(月) 01:33:21 ID:hihORIFda.net]
あ、どうせ、コピーしても意味ねぇよ。記憶してるのPCじゃねぇから。



119 名前:デフォルトの名無しさん (アウアウエー Sada-pf+t) mailto:sage [2020/03/30(月) 01:33:39 ID:hihORIFda.net]
考えまとめるためにPC使ってるだけ、ただそれだけなんだよ。

120 名前:デフォルトの名無しさん (ワッチョイ 4191-tYYp) mailto:sage [2020/03/30(月) 09:44:28 ID:c+7OLkMF0.net]
>>116
君にできないからと言って、そんなもんが自慢になると思うかね?

121 名前:デフォルトの名無しさん (オッペケ Sr79-7qnn) mailto:sage [2020/03/30(月) 10:45:50 ID:44eTx7Dtr.net]
>>96
それでも同じエラーが出ます…

122 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 10:57:15.53 ID:XiEELtFfM.net]
>>120
日本語の理解力がないのかな?
自慢にもならないことをいちいち書くとかバカじゃね?
って言う事な

123 名前:デフォルトの名無しさん (ワッチョイ f6f7-DNZ3) mailto:sage [2020/03/30(月) 12:35:49 ID:rHF2nN3k0.net]
>>121
wS1.Cells(c.Row, "Z").value < 0
そもそもこれ必要?

124 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 13:30:25.60 ID:8cfGBpvw0.net]
いや、いらないのはそっちじゃなくて、ElseIf〜 のIf〜Then

If Not c Is Nothing Then
If wS1.Cells(c.Row,"Z").value<0 Then
.Cells(i, "V") = wS1.Cells(c.Row, "Q")
Else
.Cells(i, "X") = wS1.Cells(c.Row, "Q")
Endif
Endif

でいいはず
エラーが出たのが実は一つ上の行で、i に代入してなかったってオチじゃないよね

125 名前:デフォルトの名無しさん (スッップ Sdb2-tYYp) mailto:sage [2020/03/30(月) 15:51:59 ID:pRaklD1Wd.net]
>>122
悔しいからって一々反応しなくて良いんだぞwww

126 名前:デフォルトの名無しさん (ドコグロ MM9a-aXsr) mailto:sage [2020/03/30(月) 15:58:49 ID:5QM7gMbqM.net]
>>125
ブーメラン乙w

127 名前:デフォルトの名無しさん (スフッ Sdb2-Cd0d) mailto:sage [2020/03/30(月) 16:25:47 ID:Ds9EzL2Md.net]
反応したら負けだと(みんな)思ってる

128 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 17:08:01.39 ID:nRSFIrFT0.net]
どこで受けたストレスをここで発散してるんだろう・・・



129 名前:デフォルトの名無しさん (ドコグロ MM71-aXsr) mailto:sage [2020/03/30(月) 19:49:19 ID:JBOku6fCM.net]
>>127
>>125に言ってやれよw

130 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 20:13:35.71 ID:4l2N9sosM.net]
ここの人等は本当にきついね
一部だけかもしれんけど
他スレ建ててもどうせそこにやってくるし困ったもんだ

131 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 20:19:47.92 ID:jrEvufLB0.net]
いいから質問しろよ
俺が優越感感じられるように割と簡単なやつな

132 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 20:23:47.47 ID:z27088IIa.net]
ワロタw
ワイもドヤ顔で回答したい

133 名前:デフォルトの名無しさん mailto:sage [2020/03/30(月) 20:33:15.75 ID:mnH7Xf0t0.net]
禿げのくせに

134 名前:デフォルトの名無しさん [2020/03/31(火) 00:31:58.74 ID:O8i/VRws0.net]
>>133
このハゲ!

135 名前:デフォルトの名無しさん mailto:sage [2020/03/31(火) 00:37:41.25 ID:fAiG3E7e0.net]
天才な人、教えて下さい。

フォルダAの中にフォルダa1があってこの中にxxx.zipがあるとします。
このxxx.zipを直接クリックしたりしないで解凍するプログラムを書くのはVBAで可能でしょうか?

136 名前:デフォルトの名無しさん mailto:sage [2020/03/31(火) 00:57:46.12 ID:x9NcPTe/0.net]
たまたま知ってたけど天才じゃないから教えられない
残念です
無念です

137 名前:デフォルトの名無しさん mailto:sage [2020/03/31(火) 01:02:53.10 ID:x9NcPTe/0.net]
俺も天才じゃないんだわ
いるんか?このスレに、天才が

138 名前:デフォルトの名無しさん [2020/03/31(火) 02:01:24.29 ID:PSx1iNyN0.net]
>>135
馬鹿は死ね



139 名前:デフォルトの名無しさん mailto:sage [2020/03/31(火) 02:22:12.33 ID:CMEsfttX0.net]
>>135
「powershell zip 解凍」で検索!

140 名前:デフォルトの名無しさん (ワッチョイ 8101-tylh) mailto:sage [2020/03/31(火) 03:29:43 ID:fAiG3E7e0.net]
>>139
どうもありがとう!

141 名前:デフォルトの名無しさん (ワッチョイ 12ad-7qnn) mailto:sage [2020/03/31(火) 03:37:14 ID:sCGR7IuL0.net]
>>117って難しい?

142 名前:デフォルトの名無しさん [2020/03/31(火) 05:23:52.03 ID:kiJT2Kt60.net]
zipをxlsxにすれば、VBAを使わなくても開くだけで解凍できる。どこに解凍されるかは知らんが。

143 名前:デフォルトの名無しさん (スッップ Sdb2-tYYp) mailto:sage [2020/03/31(火) 08:15:19 ID:AMZVbv8Gd.net]
>>126
zip解凍ぐらい大して難しく無いんだから答えてあげたら?

144 名前:デフォルトの名無しさん (ドコグロ MM1d-aXsr) mailto:sage [2020/03/31(火) 08:25:37 ID:FZ3Oti5EM.net]
>>143
既に>>139で答えられてるだろ
スレの流れも追えないのか?w

145 名前:デフォルトの名無しさん (スッップ Sdb2-tYYp) mailto:sage [2020/03/31(火) 08:42:47 ID:AMZVbv8Gd.net]
>>141
VBA 共有編集でググレば参考になる所が出てくる。

146 名前:デフォルトの名無しさん (スッップ Sdb2-tYYp) mailto:sage [2020/03/31(火) 08:43:03 ID:AMZVbv8Gd.net]
>>144
バーカwww

147 名前:デフォルトの名無しさん mailto:sage [2020/03/31(火) 09:32:50.09 ID:WgVk0vye0.net]
うゎ、真性かよw

148 名前:デフォルトの名無しさん (ワッチョイ b18f-+ryc) mailto:sage [2020/03/31(火) 13:30:22 ID:UcE7ogps0.net]
そういやxlsxがそもそもzipファイルなんだよな



149 名前:デフォルトの名無しさん (ワッチョイ d9e5-n60N) mailto:sage [2020/03/31(火) 22:47:10 ID:Rc1BoApG0.net]
そーなのか
道理で大昔作ったフォーマットを作り直してみたら容量が半分程度だったんだ
効率的なコード書けるようになった俺スゲーって訳じゃなく、エクセルさんが凄かったのね

150 名前:デフォルトの名無しさん (ワッチョイ 9bf7-14eV) mailto:sage [2020/04/01(水) 01:30:54 ID:IClGbcwW0.net]
拡張子zipにして展開すると画像ファイル取り出せるしな

151 名前:デフォルトの名無しさん (アウアウウー Sae9-f+0C) mailto:sage [2020/04/01(水) 02:22:12 ID:06G29rGEa.net]
今さら次郎

152 名前:デフォルトの名無しさん (ワッチョイ 155f-P5Sm) mailto:sage [2020/04/01(水) 03:04:48 ID:Ex6pONtn0.net]
これから三郎

153 名前:デフォルトの名無しさん (ワッチョイ e5ad-KN+/) mailto:sage [2020/04/01(水) 03:32:39 ID:8LLFjcSO0.net]
終わりに四郎

154 名前:デフォルトの名無しさん (ブーイモ MM79-bVUD) mailto:sage [2020/04/01(水) 04:33:51 ID:h6/hOHkqM.net]
アッと驚くタメ五郎

155 名前:デフォルトの名無しさん mailto:sage [2020/04/01(水) 12:55:56.84 ID:2mAYLJyeM.net]
>>151
好きだよ六郎

156 名前:デフォルトの名無しさん mailto:sage [2020/04/01(水) 18:21:42.63 ID:UG3CS4Iqd.net]
ネットでこんな素晴らしい物を見つけたんだけれども、これがデータ量が多いと結構時間掛かるんだけど、高速で図形として書き出す方法って他にありませんか?


izawa-web.com/excel

157 名前:bcad/dxfreader.html []
[ここ壊れてます]

158 名前:デフォルトの名無しさん (ワッチョイ 5dce-bVUD) mailto:sage [2020/04/01(水) 22:01:42 ID:4Q64PMPZ0.net]
>>156
CADアプリで画像にでも変換してシートに貼り付けた方が早くて綺麗
オートシェイプに変換すると重くなるし比率が狂うし、メリットがなさすぎる



159 名前:デフォルトの名無しさん (ワッチョイ 251f-yCYu) mailto:sage [2020/04/01(水) 22:28:36 ID:kG9c2P/10.net]
>>157
貼って終わりならそれでもいいんですが、数あるCADデータの中から指定のデータを呼び出してエクセルに貼り付けて線の色とか文字を取得したいんですよね。

160 名前:デフォルトの名無しさん mailto:sage [2020/04/01(水) 22:54:48.05 ID:cJ4COAhO0.net]
>>145
更新時間を短くする方法は載ってなかった

161 名前:デフォルトの名無しさん (ワッチョイ 23b5-Lkgv) mailto:sage [2020/04/02(Thu) 00:31:10 ID:hOxCGNmI0.net]
あるマクロを開いた瞬間に自作したユーザーフォームが出るようにする
それと同時にエクセルファイルを選択できる ファイルを開くウィンドウが出るようにする

ド基礎以前だと思うのですがおしえていただきたく、、

162 名前:デフォルトの名無しさん (ワッチョイ 2ba7-9mb0) mailto:sage [2020/04/02(Thu) 00:42:40 ID:quV7czYu0.net]
ググれば全部出るのに何故ここできく

163 名前:デフォルトの名無しさん mailto:sage [2020/04/02(木) 02:21:22.11 ID:9ZVXgmel0.net]
>>160
Workbook_Open()
UserForm1.Show
Application.GetOpenFilename

164 名前:デフォルトの名無しさん mailto:sage [2020/04/02(木) 07:03:17.01 ID:qQpWBHI+0.net]
ド基礎以前発言がひっかかるな...

あるマクロが他人の作った編集できないマクロなら難しいね
パスワードクラックはNGで

165 名前:デフォルトの名無しさん mailto:sage [2020/04/02(木) 08:01:03.55 ID:qvprCKttr.net]
少しくらいの調べる能力も持たないお子ちゃまが多い

166 名前:デフォルトの名無しさん (ワッチョイ 1dda-bVUD) mailto:sage [2020/04/02(Thu) 10:29:10 ID:2gPurUpa0.net]
ド基礎以前のこともわからないやつに教えても理解できんだろう

167 名前:デフォルトの名無しさん (ワッチョイ 23b5-Lkgv) mailto:sage [2020/04/02(Thu) 18:43:17 ID:hOxCGNmI0.net]
>>162
ありがとう、ネットで捜してコピペしながら頑張ってくわ

起動すると作ったユーザーフォームが開きつつ
ファイルからエクセルを選べるウィンドウを出す

開いたエクセルにはBとCの2列目からずらーっと数字が並んでるからそれをあらかじめ自分のカスタマイズした散布図にする
(2列目から始まるが終わりはデータによって違う)

ボタンによって2つの散布図に分けられる

がんばりやす

168 名前:デフォルトの名無しさん mailto:sage [2020/04/02(木) 19:19:56.56 ID:K5yIowQc0.net]
>>164
人に教えることで自分も成長する。



169 名前:デフォルトの名無しさん (アウアウウー Sae9-f+0C) mailto:sage [2020/04/03(金) 02:02:50 ID:Vs5HZC6Ua.net]
成長してないやん

170 名前:デフォルトの名無しさん (スッップ Sd43-bjOE) mailto:sage [2020/04/03(金) 12:51:38 ID:EwhXV+Zid.net]
>>162
そりゃ駄目だ。
モーダルとモードレスを調べよう。

モーダルでやりたかったらフォームのInitializeかActivateイベントだな。

171 名前:デフォルトの名無しさん (スッップ Sd43-bjOE) mailto:sage [2020/04/03(金) 12:54:37 ID:EwhXV+Zid.net]
>>159
AutoUpdateFrequencyプロパティじゃね?
ググっただけだけど。

172 名前:デフォルトの名無しさん (ワッチョイ e5ad-KN+/) mailto:sage [2020/04/03(金) 13:10:39 ID:tVlvtk9J0.net]
>>167
それはあるな

173 名前:デフォルトの名無しさん (ワッチョイ 4bcc-bVUD) mailto:sage [2020/04/03(金) 13:51:03 ID:S5/JCD2f0.net]
>>170
それ、イミディエイトペインで試したけど、5未満はNGだよ

>>145の共有編集って、Excel2016で実装した、OneDriveとか使ってクラウドでやるやつだと思ったんだけど、違うのかな
×共有編集 ○共同編集 らしいけど

174 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 10:09:51.56 ID:3Ir6pkSX0.net]
モーダルあなた疲れているのよ

175 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 10:15:36.71 ID:nxBKOFy80.net]
自動更新の間隔を短くするのが無理なら手動でできないのかな?
強制的に切断と接続を繰り返してみたらどうだろう

176 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 13:14:06.10 ID:MDQA80eK0.net]
>>173
やっぱり、逆だよね

177 名前:デフォルトの名無しさん mailto:sage [2020/04/04(土) 18:10:09.51 ID:x7mbZh3f0.net]
>>172
ローカルのつもりだったんだけどそれなら共同編集になるのかな?

178 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 01:47:50.77 ID:LE/VkChT0.net]
セルA1とB1の数値が一致しない場合はC1を塗りつぶす、というのはできるのでしょうか?



179 名前:デフォルトの名無しさん mailto:sage [2020/04/05(日) 01:56:11.77 ID:RR8jfU5J0.net]
>>177
If A1 <> B1 Then [C1].Interior.Color = RGB(1, 234, 56)

180 名前:デフォルトの名無しさん (ササクッテロ Sp01-xTSh) mailto:sage [2020/04/05(日) 07:39:22 ID:BAT1a6hLp.net]
>>178
ありがとうございます!

181 名前:デフォルトの名無しさん (ワッチョイ 1b06-bVUD) mailto:sage [2020/04/05(日) 11:37:21 ID:FbjC6ZOO0.net]
A行の値を見て、その値が1だったら、空白行を上に2つ入れたいのですが、できますか。

182 名前:デフォルトの名無しさん (ワッチョイ 1b06-bVUD) mailto:sage [2020/04/05(日) 11:44:06 ID:FbjC6ZOO0.net]
間違えた。

A列の値を見て、その値が1だったら、空白行を上に2つ入れたいのですが、できますか。

183 名前:デフォルトの名無しさん (ワッチョイ 8d7c-5QI3) mailto:sage [2020/04/05(日) 11:59:20 ID:Kx41qnng0.net]
できます

184 名前:デフォルトの名無しさん (ワッチョイ 5dce-bVUD) mailto:sage [2020/04/05(日) 12:00:45 ID:RR8jfU5J0.net]
>>180
Sub Macro1()
  For r = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(r, 1) = 1 Then Rows(r).Resize(2).Insert
  Next
End Sub

185 名前:デフォルトの名無しさん (ワッチョイ 1b06-bVUD) mailto:sage [2020/04/05(日) 12:32:03 ID:FbjC6ZOO0.net]
>>183
ありがとうございます!できました。

186 名前:デフォルトの名無しさん (ワッチョイ 45ac-tCKN) mailto:sage [2020/04/06(月) 00:22:26 ID:8R1em71p0.net]
ほんまこの程度自分で考えないのかなあ

187 名前:デフォルトの名無しさん (ワッチョイ 23ad-KBPB) mailto:sage [2020/04/06(月) 01:48:40 ID:SI8CeRSt0.net]
子が吐き出したcsvデータ(子の状況により1ファイル数行〜数百行程度のデータ00000000.csv〜FFFFFFFF.csv)を親で吸い上げて管理用に整理するマクロを作成しているのですが子のデータ数が多くなったせいか親の処理を実行中にExcelが落ちるようになりました。
現状では
Workbook.Open 00000001.csv
でファイルを開いてから配列に叩き込んで処理しているのですが、
他に何か開かずに直接配列に収納するとか別の開き方など良い手段はありますでしょうか。

188 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 02:53:22.77 ID:mfVHo2vq0.net]
>>186
その説明では落ちる原因がわからんので対処のしようがない
とりあえずテキストファイルとして開いてSplitで配列に入れるとか



189 名前:デフォルトの名無しさん (オッペケ Sr01-WpTI) mailto:sage [2020/04/06(月) 07:33:50 ID:c57grIZCr.net]
>>174
自動更新しても更新されない
強制的にはできないね

190 名前:デフォルトの名無しさん (ワッチョイ 4bcc-bVUD) mailto:sage [2020/04/06(月) 09:41:20 ID:LXVfU9S30.net]
>>174
最初、自前タイマーでの自動保存を提案しようと思ったけど、全ユーザーの同期とか排他処理とか必要になるからやめた
同時使用数にもよるけど、現状の5分ぐらいが実用限度だと思う
それでも問題があるから、MSも共有ブック機能を非推奨にしたんだろうしね

191 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 15:09:00.57 ID:0mGlPNRI0.net]
>>186
まず落ちる原因の特定が必要
本当にデータ量が原因かどうか?

それでもし量の問題だとしたら
同時に必要なデータを見定める

たとえばA、B、Cのファイルを同時に開いてたが
じつはAとB、BとCで処理する工夫の余地があるとか

それでもアルゴリズムではどうにもならない量なら
SQLとかのデータベースに移行する

192 名前:デフォルトの名無しさん mailto:sage [2020/04/06(月) 22:35:08.05 ID:sFf9EAmnM.net]
https://oshiete.goo.ne.jp/qa/1972570.html
ActiveWorkbook.SaveAsにするとファイル名変えずに保存できる理由を教えてください
Copyした時点で別ブックが作られるんですか?

193 名前:デフォルトの名無しさん [2020/04/06(月) 23:45:47.95 ID:jDCeOgrg0.net]
マクロで作られた印刷ボタンを押すと両面印刷で出てくるからこれを片面印刷に統一したいんだけどどうしたらいいの?

194 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 00:23:26.13 ID:YDovvV0g0.net]
>>192
マクロを書き換える
印刷方法の変更はプリンターごとに違ってて、Excelのマクロの中でも一番面倒な部分だから、会社でわかってる人に聞くのが早い

195 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 00:29:05.68 ID:BEkwL8Dn0.net]
プリンタ登録を2つに増やして使い分けるのが簡単。

でもWin95のころはコピーするだけでプリンタ増やせたけど年々難しくなるよね

196 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 00:35:40.64 ID:8SYsQHh80.net]
正直印刷は、機器変更、NW、印刷位置、紙質とかでトラブルが非常に多くなるから、
金、人命とか絶対にVBAで自動化しなければ行けない理由がない限り手動にするようにしたわ
印刷部分だけPDFにして置いておくとか

197 名前:デフォルトの名無しさん (ワッチョイ 2ba7-9mb0) mailto:sage [2020/04/07(火) 01:53:49 ID:qS+8J4U+0.net]
マクロは印刷プロパティを出すところまで。
それ以上はトラブルの原因になるからやめとき

198 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 04:36:48.84 ID:hIwtKFus0.net]
そもそも紙にこだわるのが非効率で
電子化するのが本来の理想ではある



199 名前:デフォルトの名無しさん (ワッチョイ 233e-g9A3) [2020/04/07(火) 07:13:41 ID:xwPFl55C0.net]
プリンタのプロパティでプリンタの設定自体を片面印刷にしておくと片面印刷になりますか?

200 名前:デフォルトの名無しさん (ワッチョイ 4d8e-jJEW) [2020/04/07(火) 08:07:09 ID:YQg5kUpF0.net]
そのくらい自分でやって試せよ

201 名前:デフォルトの名無しさん (スッップ Sd43-bjOE) mailto:sage [2020/04/07(火) 08:07:32 ID:FCg3JG5md.net]
>>186
CSVをWorkbook.Openで開くのが駄目。
OpenステートメントとかFileSystemObject使う方が良い。

202 名前:デフォルトの名無しさん (ワッチョイ 2342-uUuo) mailto:sage [2020/04/07(火) 09:12:43 ID:+6IcJjJU0.net]
>>197
そんなの職場や利用目的によりけりだから

203 名前:デフォルトの名無しさん [2020/04/07(火) 12:34:06.90 ID:y7/AcPOrM.net]
コントロールパネルからプリンタのプロパティで片面印刷に設定したんだけど片面印刷オンリーになりません
どうしたらいいですか?

204 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 12:42:21.74 ID:RfysvMTgr.net]
やったこと全部書き出してプリンターメーカーに聞け

205 名前:デフォルトの名無しさん (ワッチョイ b501-tb4t) mailto:sage [2020/04/07(火) 15:41:03 ID:AQdBAJYM0.net]
特定の文字列のみ文字色を変えたいんだけど、
置換を使うと指定した文字列を含むセルに入力されている全ての文字の色が変わってしまう…

現状では数百数千セルある中から文字列を選択して文字色変更を繰り返す、という辛い作業を続けているのですが
この様に、指定した文字列だけの色を変更って出来ませんか?

206 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 17:49:52.17 ID:yHbrhPie0.net]
>>204
Sub 特定文字列に色をぬる(検索範囲 As Range, 対象文字列 As String, 色 As Long)
Dim r As Range
For Each r In 検索範囲
Dim s As Long
s = InStr(r.Characters.Text, 対象文字列)
If s > 0 Then
r.Characters(s, Len(対象文字列)).Font.Color = 色
End If
Next
End Sub

207 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 19:26:33.02 ID:FCg3JG5md.net]
>>205
何か少し違う気がする。
rの中で対象文字列が1回しか変わらないんじゃね?

s=instr(s+1,r.Value,対象文字列)でsが0になるまでループかな?

208 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 19:29:30.91 ID:ZYiBkzsm0.net]
何から覚えようVBA



209 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 19:42:05.21 ID:F7VfxkGZ0.net]
>>198
やってみてどうなった?

210 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 20:04:27.93 ID:4wIwYA/Ra.net]
>>207
覚えるのが目的じゃなかろう

211 名前:デフォルトの名無しさん (ワッチョイ 23ad-KBPB) mailto:sage [2020/04/07(火) 20:22:06 ID:83dL758F0.net]
>>187,190,200
186です。ご回答有難う御座います。
ご指摘を参考に以下の様な形に変更したところ、強制終了する事なく全ファイルの吸い上げが出来ました。お手数をお掛け致しました。
'// ファイル数カウント //
Dim CSVPth As String, CSVNam As String
CSVPth = Dir(CSVDir & "*.csv")
CSVNam = CSVPth
Do While CSVPth <> ""
CSVPth = Dir()
CSVNam = CSVNam & CSVPth
Loop
Dim CSVAry As Variant, CSVCnt As Long
CSVAry = Split(CSVNam, ".csv")
Dim OutAry() As Variant
ReDim OutAry(1 To (UBound(CSVAry) + 1) * 6, 1 To 1)
Dim LinAry As Variant, LinStg As String, LinCnt As Long
'// CSVファイル読込処理 //
For CSVCnt = LBound(CSVAry) To UBound(CSVAry)
If CSVAry(CSVCnt) <> "" And Dir(CSVDir & CSVAry(CSVCnt) & ".csv") <> "" Then
Open CSVDir & CSVAry(CSVCnt) & ".csv" For Input As #CSVCnt + 1
LinCnt = 0
Do While Not EOF(CSVCnt + 1)
Line Input #CSVCnt + 1, LinStg
LinCnt = LinCnt + 1
LinStg = "" & Replace(LinStg, """", "") & ""
LinAry = Split(LinStg, ",")
<-- 処理 -->
ReDim Preserve OutAry(1 To (UBound(CSVAry) + 1) * 6, 1 To WorksheetFunction.Max(UBound(OutAry, 2), LinCnt)
Loop
Close #CSVCnt + 1
End If
Next Range(Sheet2.Range("A1"), Sheet2.Cells(UBound(OutAry, 2), UBound(OutAry, 1))).Value = WorksheetFunction.Transpose(OutAry)

212 名前:デフォルトの名無しさん (ワッチョイ 5dce-bVUD) mailto:sage [2020/04/07(火) 21:04:34 ID:YDovvV0g0.net]
Windows10になってから、アプリごとに印刷設定を覚えるようになってややこしくなった
以前はプリンタのプロパティからデフォルト状態を決め打ちできたのに

213 名前:デフォルトの名無しさん mailto:sage [2020/04/07(火) 22:46:04.39 ID:yHbrhPie0.net]
>>206
その辺は仕様がはっきりしないから何とも言えんし
そもそも丸投げを受けたつもりはない

s+1だとaaaaaにたいしてaa指定したら5文字全部色変わるけどそれが良いのかどうかわからんだろ

214 名前:デフォルトの名無しさん (ワッチョイ e202-slfm) mailto:sage [2020/04/08(水) 03:24:16 ID:PBw6emZJ0.net]
4文字目から3文字赤に変えたマクロの記録
ActiveCell.Characters(Start:=4, Length:=3).Font.ColorIndex = 3

215 名前:デフォルトの名無しさん [2020/04/08(水) 19:41:01.55 ID:uS6fz3VF0.net]
まさかシート毎に印刷の画面から片面印刷を選ばなきゃ両面印刷をされるなんて知らなかったわ

216 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 19:55:07.25 ID:o5xrKhXHa.net]
プリンター関係の情報はシートごとになってるから。
手動ですべてのシートを両面印刷にする方法はあるけど。

217 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 20:05:36.79 ID:T31Wtd0td.net]
シート全選択してプリンタ設定変更してからやればいい

218 名前:デフォルトの名無しさん mailto:sage [2020/04/08(水) 20:16:40.48 ID:o5xrKhXHa.net]
シート全選択してプリンター設定してもダメなんですよね。



219 名前:デフォルトの名無しさん (アウアウウー Sabb-Fqhg) mailto:sage [2020/04/08(水) 20:32:27 ID:wSF4QqHVa.net]
あきらめろん

220 名前:デフォルトの名無しさん (スププ Sd02-bmmP) mailto:sage [2020/04/08(水) 20:37:06 ID:T31Wtd0td.net]
>>217
上書き保存してファイルを開き直せ

221 名前:デフォルトの名無しさん (ワッチョイ f71f-nfbJ) mailto:sage [2020/04/08(水) 22:17:54 ID:Tninom9X0.net]
dwgファイルをどうにかしてEXCELに図形で取り込みたいんだがなんか方法ありません?
家の見取り図みたいなファイルなんだけど。

222 名前:デフォルトの名無しさん (ワッチョイ 43ce-AglQ) mailto:sage [2020/04/08(水) 23:34:26 ID:W1XPdmgi0.net]
>>220
DXFに変換

223 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 03:10:49.06 ID:lF+KAcZx0.net]
>>220
後輩にやらせる

224 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 04:58:57.51 ID:yf4TGzZj0.net]
>>220
JacConvert

225 名前:デフォルトの名無しさん (オッペケ Sr5f-5Z7F) mailto:sage [2020/04/09(Thu) 07:53:04 ID:q52/CIa+r.net]
セル右クリックしたら出てくるメニューを禁止に出来ない?
書式設定とかコピーとか貼り付けとかメニュー自体出ないように

226 名前:デフォルトの名無しさん (スップ Sd22-ELgU) mailto:sage [2020/04/09(Thu) 07:57:33 ID:YKVVyHYsd.net]
>>224
サブクラスで出来

227 名前:驍ゥどうか。
ここには答えられる程の上級者が居ないと思う。
[]
[ここ壊れてます]

228 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 08:14:30.62 ID:44A41Mtl0.net]
保護かければ?



229 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 08:18:29.24 ID:q52/CIa+r.net]
>>226
保護かけると使えなくなる機能があるから無理なんだ

230 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 08:39:31.78 ID:K8984GmW0.net]
これは?普通にググったら出てきたぞ
https://www.moug.net/tech/exvba/0150035.html

231 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 09:20:01.56 ID:x5VgstST0.net]
普通にやり方あるぞ

232 名前:デフォルトの名無しさん (ササクッテロラ Sp5f-zMEH) mailto:sage [2020/04/09(Thu) 12:24:02 ID:wcbpQmosp.net]
エクセル2007についてです

セルをクリックすると、カレンダーが表示されて、そのカレンダーの日付をクリックすると、セルに日付が挿入される

という形にしたいのですが、ここで問題があります

一つはAccessがないため、カレンダーコントロールがないのと、もう一つはインターネット接続不可端末のため、どこからかDLするというのができないです

この場合のカレンダーから日付取得をするというのはできないのでしょうか?

233 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 12:30:31.66 ID:8gmsr/Td0.net]
>>230
ボタンを横7列、縦6つ並べたカレンダーコントロール的なフォームを自作すればいい
https://ateitexe.com/excel-vba-calendar-control/

234 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 12:31:40.44 ID:veSARJt1M.net]
カレンダーのシートを作って、そこから選択させるとか

235 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 13:01:14.59 ID:wcbpQmosp.net]
>>231
早速参考にさせていただきました
ありがとうございます

ただ、これ起動すると、日付クリックした後、テキストボックスに日付挿入になるので
どこかのコードにテキストボックスではなくてセル挿入になるようにしたらいいと思うんですけれど、どこに記述するのがいいですかね?

まだvbaいじり始めた身としてはここまで複雑だといじりづらいというか

236 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 20:27:14.43 ID:PvaeZ0Ck0.net]
>>224
BeforeRightClickイベント

237 名前:デフォルトの名無しさん (ワッチョイ f71f-nfbJ) mailto:sage [2020/04/09(Thu) 21:58:32 ID:TQ3Lwxfd0.net]
>>221
調べるとDXFはTextファイル形式で出来ているみたいでネットで調べながらやってみたけど、重い。まぁ俺の書き方が駄目な気もするけど。線の数が4万とか超えてる。

238 名前:デフォルトの名無しさん mailto:sage [2020/04/09(木) 23:05:01.47 ID:vJBq1mcg0.net]
作者不明のファイルを修正しているのですが、そのファイル自身を指定するのにファイル名で
記述してありました。これだと「●●Ver1.0.xlsm」→「●●Ver1.1.xlsm」のようにファイル名を
変える度にコードを修正しなくてはならないためThisWorkBookに変えようかと思っているのですが
その場合なにか弊害とかあるんでしょうか?



239 名前:デフォルトの名無しさん (ワッチョイ e23e-1Ne1) [2020/04/10(金) 07:51:15 ID:goOf5Ofq0.net]
シートを全選択したら一括で変更できるのか

240 名前:デフォルトの名無しさん (オッペケ Sr5f-vH9a) mailto:sage [2020/04/10(金) 08:26:28 ID:tq9uLSTsr.net]
>>236
弊害は無いよ

241 名前:デフォルトの名無しさん (オッペケ Sr5f-q7V1) mailto:sage [2020/04/10(金) 09:37:44 ID:Rte1PrgOr.net]
そのファイル自身だと完全に明確で揺らがないなら、thisworkbookでいんじゃね

242 名前:デフォルトの名無しさん (ワッチョイ c6da-AglQ) mailto:sage [2020/04/10(金) 19:23:44 ID:LG9l2UEQ0.net]
どこから参照されてるのか全部調べないとわからないんじゃないかそれ。
まあThisworkbookを知らないだけの可能性は高いが。

243 名前:デフォルトの名無しさん (ワッチョイ eb5e-AglQ) mailto:sage [2020/04/10(金) 19:27:26 ID:f64Irgef0.net]
>>238,239
ありがとうございます。

今日内容を確認してきましたが、マクロが記述されたブック(A.xlsm)上でシートを作成し、それをコピーして
新規ブック(B.xlsx)を作成してからもう一度A.xlsmの特定のシートをアクティブにする、という処理の中で
A.xlsmのブック名を明示してありました。

今日は時間がなくて試せなかったのですが、この場合でもマクロが記述されたブックはA.xlsmなので
ThisWorkBookで問題ないかなと思ったのですが、それであっていますでしょうか?

244 名前:デフォルトの名無しさん (ワッチョイ eb5e-AglQ) mailto:sage [2020/04/10(金) 19:38:53 ID:f64Irgef0.net]
>>240
ThisWorkBookを知らないというかちゃんと理解していないのはその通りだと思います。
ThisWorkBookの主体がが変わる場合があるということでしょうか?
マクロ実行中にほかのブックに記述されたマクロを利用したりすると変わる、とかですかね?

245 名前:デフォルトの名無しさん (ワッチョイ 62ad-JJvI) mailto:sage [2020/04/10(金) 20:30:11 ID:oDKSQVIR0.net]
ThisWorkBookはプログラムが記述されているワークブックを参照せよっていう意味だからブックAを実行中にアクティブがブックBに切り替わったりしてもブックAに記述されたThisWorkBookはブックAを参照する

246 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 03:52:15.33 ID:w8fV8nev0.net]
エクセルテンプレートを開いた状態

フォルダにある1つ目のtxtデータをエクセルテンプレにドラッグしてエクセル化

エクセル化したC1:C8の範囲をコピー

元々開いてあるエクセルのA1:A8に「数値」のみ貼り付け

エクセル化されたデータは閉じて2つ目のtxtをドラッグしてエクセル化

C1:C8の範囲をコピーしてテンプレのB1:B8に「数値」のみコピー

って感じでテンプレに測定機から出したデータをひたすら貼ってるんですが
これを簡単にするVBAとか可能ですか?

人によってはテキストをエクセル化はまとめて5つドラッグしたりして順番に貼ってく人もいます

エクセル化したデータの数値のみコピーしたいセルはC1:C8は固定

テンプレにはABCDと順番に貼って増やしていく

これをなんとかマクロかする案があればご教授お願いします。

247 名前:デフォルトの名無しさん (ワッチョイ 4f5f-791I) mailto:sage [2020/04/11(土) 07:25:04 ID:+FpWMQNh0.net]
可能です。

248 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 08:08:50.84 ID:X9U6v4B00.net]
テンプレート(.xlt .xltx)は何に使うの?



249 名前:デフォルトの名無しさん (ワッチョイ e2b5-G6fV) mailto:sage [2020/04/11(土) 10:50:20 ID:w8fV8nev0.net]
>>245
その一言でも希望があってありがたい
どういう流れで作ったらいいか何か構想のヒントなどあればいただきたいです

・テンプレのエクセルにボタン設置
・テンプレ開くと同時にユーザーフォーム開くようにしてテキスト選択できるようにするのか
・そもそもVBAがまだ人間になれてない猿並のスキル


>>246
テンプレは.xlsxです、普通のエクセルの

250 名前:デフォルトの名無しさん (アウアウエー Sa3a-d4/r) mailto:sage [2020/04/11(土) 10:56:04 ID:DIdffniea.net]
>>244
txtデータは、例えばカンマで区切られてるとか、空白で区切られてるとか、決まってるの?
内容的にはVBAがある程度使える人なら難しくないと思うけど、ちょっとネットで聞いて作ろうとかいうのは難しいんじゃないかな。

251 名前:248 mailto:sage [2020/04/11(土) 11:19:08.65 ID:DIdffniea.net]
txtファイルがどのくらいの数あるのかで、どういう手順が良いか違ってくると思います。

そんなにたくさんないなら、テンプレファイル(◯◯.xlsm )に、ボタンを用意。ボタンを押したらファイルを選択するダイアログが出て、該当のtxtファイルを選択してデータを読み込む。

txtファイルがたくさんあるとこの手順は面倒なので、同一フォルダに入れてなんらかの順番で読み込むようにするとか。

252 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 11:27:54.59 ID:YvJJVii7M.net]
>>248
そこら辺の知識がなくてとにかくテキストを、開いてるエクセルにドラッグすると決まったセル範囲に例えばC1:C5に欲しいデータが出るのでそれをコピーしてるのが現状です

イメージ的にいつも

https://i.imgur.com/50VhJqS.jpg
テキスト入ったフォルダとエクセルを並べる

https://i.imgur.com/8TiTDap.jpg 
ドラッグしてエクセル化

https://i.imgur.com/OrMUP1G.jpg
数値のみコピーしてテンプレに貼り付け

https://i.imgur.com/htHvRLv.jpg
閉じた後、次のテキストをドラッグしてエクセル化

https://i.imgur.com/1F89knY.jpg
テンプレの次の列に貼り付け

これを日によっては70くらいやったりしてます、、

253 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 11:31:26.34 ID:YvJJVii7M.net]
>>249
レスありがとです!!!そこです!
日によってデータ数が違って
5つの日もあれば30の日もあれば75の日もあります
ボタン作って該当するデータの数を任意で選べたりできないのかなぁと妄想してます

254 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 11:41:57.94 ID:YvJJVii7M.net]
この貼り付けるエクセルはそもそもこんなのでテンプレなの?っていうは一応エクセルの関数で
他の何種類もあるシートに複数の関数で出せる紐付けしてあるので
テンプレというか自分なりのベースのようなものです

本当はその関数すら慣れてる人ならVBAで余裕で組むんだろうなと思うのですがそんな欲ばる資格がまだないのでまずはこの作業を…

255 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 11:45:20.84 ID:DIdffniea.net]
GetOpenFilenameメソッドでダイアログで複数のtxtファイルを選択するか、「転記前フォルダ」とかに対象のtxtファイル入れておいて、フォルダ内をfor eachですべて読み込むか。読み込み済みのtxtは自動で「転記済フォルダ」に入れるか削除。
どちらにしてもtxtファイルの名前順に読み込むようになるだろうから、そこを一工夫する必要があるかも。

256 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 12:37:41.59 ID:9V4Tv9yv0.net]
>>252
とりあえず、フォルダ内の全テキストを一気に読み込むやつを作った
専用のフォルダに必要なデータだけ入れて、フォルダ名を2行目に書いて

Sub Macro1()
  ChDir "c:\tmp"
  f = Dir("*.txt")
  c = 1
  Do While f <> ""
    Open f For Input As #1
    For r = 1 To 6
      Line Input #1, s
      Cells(r, c) = Split(s, vbTab)(2)
    Next
    Close #1
    f = Dir
    c = c + 1
  Loop
End Sub

257 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 12:48:46.57 ID:7ipBnOPU0.net]
>>247
マクロ記録してそれを加工すればいい

258 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 12:55:48.43 ID:Zf+aIjAZ0.net]
>>254
うおおおお
マジでありがとうございます!
いま外出中なので帰ったら速攻でVBE開いて取りかかります!!
他のこんな猿にアドバイスくれる人達に感謝のみ
批判されて当然のスキルしかないのでそういう覚悟もして相談させてもらってます

6月くらいまでには形にして自分もある程度
コードのルールや流れを猛勉強します

>>255
それも頑張ります、まず加工する知能を身につけます



259 名前:デフォルトの名無しさん (アウアウウー Sabb-Fqhg) mailto:sage [2020/04/11(土) 18:21:57 ID:jjkr4EqGa.net]
個人的にはCHDIRと#1ってのが
気になった

260 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 20:11:07.53 ID:Lp6A5Woc0.net]
恋だな

261 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 20:18:04.56 ID:7YQkqL610.net]
6月て
こんなんIT系の仕事じゃなくても普通に1日で理解するやろ。。

多分セルごとに書き込むからファイル数とデータによっては遅くなるな

262 名前:デフォルトの名無しさん mailto:sage [2020/04/11(土) 21:02:43.27 ID:Mh4soJ8e0.net]
クリップボードに整形したデータ入れてペーストでもいいのよ
タブで右のセル
改行で次の行

263 名前:デフォルトの名無しさん (ワッチョイ c28b-KRXG) mailto:sage [2020/04/12(日) 05:51:52 ID:2Kcsozov0.net]
VBAについて詳しい方に質問です。
現在VBAでオートフィルタの自動プログラムを組んでいます。
そこで質問があります。以下の様なデータがあったとします。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
私の名前は、太郎です。
私の名前は、岩崎です。
あなたの名前は、太郎です。
あなたの名前は、岩崎です。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
検索ワードとしてスペース区切りで「あなた 太郎」と入力された場合
「あなた」と「太郎」を同時に含む行のみをフィルタリングするには
どういう記述を Criteriaにすれば良いのでしょうか?

Criteria1:="*" & [検索ワード] & "*"

現在こんな感じで記述してますがうまく動きません。
AND条件、そしてOR条件で指定する方法を教えてくださいm(_)m

264 名前:デフォルトの名無しさん (ワッチョイ c6da-AglQ) mailto:sage [2020/04/12(日) 08:05:06 ID:YDpAYAt+0.net]
>>261
それやるならオートフィルタじゃない。
アドバンスフィルタ。

265 名前:デフォルトの名無しさん (ワッチョイ bb7c-slfm) mailto:sage [2020/04/12(日) 11:41:12 ID:QKHzDSq80.net]
>>261
シート上でオートフィルタかける時にできること以外のことはできない

266 名前:デフォルトの名無しさん (ワッチョイ bb7c-slfm) mailto:sage [2020/04/12(日) 11:45:08 ID:QKHzDSq80.net]
どうしてもその記述でやりたいならワードをスペースで分割してから条件2つ指定する

267 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 13:12:18.32 ID:2Kcsozov0.net]
ありがとうございます。
アドバンスフィルタとやらを調べてみます。

268 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 13:17:20.10 ID:bBYC6g030.net]
>>261
And条件の場合はこう書く
Criteria1:="=*あなた*", Operator:=xlAnd, Criteria2:="=*太郎*"



269 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 13:39:43.30 ID:2Kcsozov0.net]
>>266
ありがとうございます!!

270 名前:デフォルトの名無しさん mailto:sage [2020/04/12(日) 17:59:57.23 ID:Vvo4XdlE0.net]
いえいえ

271 名前:デフォルトの名無しさん (ワッチョイ e2b5-L0r9) mailto:sage [2020/04/13(月) 01:44:02 ID:sGzWGZEv0.net]
>>254
これを、やってみたけどcellsのところでエラーがでます、うーん
頑張ります

272 名前:デフォルトの名無しさん (ワッチョイ 4f5f-791I) mailto:sage [2020/04/13(月) 07:29:10 ID:aaxqX2kx0.net]
>>269
ヒント 変数 r

273 名前:デフォルトの名無しさん (ブーイモ MM5b-qE1F) mailto:sage [2020/04/13(月) 08:13:39 ID:q00oGNOiM.net]
>ヒント
ウザっ

274 名前:デフォルトの名無しさん (ワッチョイ 43ce-AglQ) mailto:sage [2020/04/13(月) 11:51:14 ID:V+m1zN0B0.net]
>>269
それはたぶん、txtファイルの中身が想定外
例えば5行以下しかないか、C列にデータが入ってないか

275 名前:270 mailto:sage [2020/04/13(月) 12:54:16.85 ID:RFtb5de7M.net]
>>269
すまん。変数 r はforで回ってた。

276 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 13:27:32.03 ID:kcz/TGUB0.net]
S列の2行目以降で、0.05以上でかつ、0.98以下の値の行を行ごと削除したいのですが、コードを教えてください
(最終行はA列から取得)

Dim tag As Variant
Dim a As Long
tag = Range("S1:S" & Cells(Rows.Count, 19).End(xlUp).Row).Value
For a = Cells(Rows.Count, 19).End(xlUp).Row To 2 Step -1
If tag(a, 19) <= 0.98 And tag(a, 19) >= 0.05 Then
Rows(a).Delete
End If
Next

277 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 14:19:37.44 ID:V+m1zN0B0.net]
>>274
Dim a As Long
For a = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
  If 0.05 <= Cells(a, 19) And Cells(a, 19) <= 0.98 Then
    Rows(a).Delete
  End If
Next

278 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 14:20:29.76 ID:6KK4qS560.net]
ワークシート機能とか使わないなら、
・その表を全て一気にもにょっと2次元配列(tableA)にいれる(コンマ数秒)
・2次元配列(tableB)を一旦定義
・tableAの各行(イメージね)をforeachする。++カウントする変数をつくる。これはtableBの行数。
・foreachのなかで、tableAのS列がその条件に合致しなければ、tableBに行のそれぞれの要素を代入する(redim preserveしながら)
・できたtableBをどこかにペタッと貼る

Excelぽくやるなら
・オートフィルタする
・2次元配列に一旦もにょっとコピーする(可視セルのみ、CurrentRegionかな)
・シートをクリアするか他のシートにコピーした2次元配列をペタっと貼る



279 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 14:21:50.93 ID:6KK4qS560.net]
ちなみに行をforeachしながら行を消すとズレが生じるんじゃね、しらんが

280 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 16:10:06.75 ID:7RR5m+brM.net]
>>254
色々いじっていますがこれをどう手直ししていいかわからず…

たとえばこれをテキストを変換したときにF2:F13にくるデータを
エクセルにはB5:B16、C5:C16と順番になるよるに出力するようになるにはどう調整すればいいのか、がんばって調べてます

281 名前:274 mailto:sage [2020/04/13(月) 16:10:57.06 ID:kcz/TGUB0.net]
>>275
ありがとうございます。

282 名前:デフォルトの名無しさん (ラクッペペ MM8e-CJtn) mailto:sage [2020/04/13(月) 18:33:52 ID:xh/6KDMeM.net]
>>278
ヒント: F1キー

283 名前:デフォルトの名無しさん (ワッチョイ e2b5-G6fV) mailto:sage [2020/04/13(月) 19:37:09 ID:sGzWGZEv0.net]
Sub テキストから引っ張る()
ChDir "C:\Users\user\Desktop\マクロ勉強" 'フォルダ指定
f = Dir("*.txt")
c = 2 'テンプレの開始する列の変更
Do While f <> ""
Open f For Input As #1 For r = 2 To 13
'テキストの引っ張ってくる行を指定
Line Input #1, s Cells(r, c) = Split(s, vbTab)(2) Next Close #1 f = Dir c = c + 1 Loop End Sub


猿には荷が重すぎるわ
せっかくここで凄いの貰ったのに頭が。
テキストをエクセル化したときのC列をF列に変更しようと思ったらすでにfが存在してて
どこを今度は変えたらいいかわかりません

284 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 19:44:03.37 ID:V+m1zN0B0.net]
>>281
cとかfは変数だよ
ワークシートの列じゃない

285 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 19:48:23.00 ID:V6BYDDPb0.net]
猿とか以前にそもそも基本知識すら身に付けてないのでは…

286 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 19:54:15.29 ID:sGzWGZEv0.net]
そう、変数なんだというとこまではぎりぎり何とかわかったんです
ただ、引っ張ってくるテキスト側の列をどこで制御してるのかがわからず
>>283
完全にその通り
単純に勉強不足
ネットでかじってばかりじゃダメだと古いけど本も借りました
ただ本当にマジで難しい…

https://i.imgur.com/7Ujyfqa.jpg

287 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 19:55:45.77 ID:V+m1zN0B0.net]
Sub テキストから引っ張る()
  Dim ファイル名 As String
  Dim 行 As Integer
  Dim 列 As Integer
  Dim 配列() As String
  Dim 文字列 As String

  ChDir "C:\Users\user\Desktop\マクロ勉強"  ' フォルダ指定
  ファイル名 = Dir("*.txt")
  列 = 2 'テンプレの開始する列の変更
  Do While ファイル名 <> ""
    Open ファイル名 For Input As #1
    For 行 = 2 To 13  ' テキストの引っ張ってくる行を指定
      Line Input #1, 文字列
      配列 = Split(文字列, vbTab)
      Cells(行, 列) = 配列(2)
    Next
    Close #1
    ファイル名 = Dir()
    列 = 列 + 1
  Loop
End Sub

288 名前:デフォルトの名無しさん (ワッチョイ e2b5-G6fV) mailto:sage [2020/04/13(月) 19:58:56 ID:sGzWGZEv0.net]
うお、変数の宣言をあらかじめわかりやすくしてくれて馬鹿な俺を誘導してくれようとする人が!!絶対そんな感じのありがたい人だ!
今から車に乗って帰ったら速攻PC開きます!−−!!



289 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 20:19:57.09 ID:Kp4LtUp30.net]
>>281
>>284
まずVBAの入門書を読んで基礎知識を
整理するといい(するみたいだけど)

あと「テキストから引っ張る」っていう言葉が曖昧
「テキストファイルを読み込む」「セルに展開する」
みたいに仕様を適切な言葉で把握しておくだけで
ネットで検索すればすぐサンプルコードが引っかかる

本当はなるべく「f」も「file」とか具体的に
命名した方が分かりやすくていいと思うけど
(ファイル用変数とセルの列を混同した一因だろうし)
まず日本語のレベルで言葉を整理しよう

290 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 22:05:23.75 ID:sGzWGZEv0.net]
>>287
全くその通りです。

とりあえず
ほぼ意味わからないまま上の人達のおかげで自分の今の業務が10倍以上余裕で速くなるであろうマクロボタンをベースになるxlsmのシートに一つ登録したらたった今完成してしまいました…
隣のシートの正式フォームに数値のみコピーするのだけはマクロで追加しました


Sub テキストファイルをベースに読み込む() ChDir "C:\Users\ikuzo\Desktop\測定データ"
'フォルダ指定
FILE = Dir("*.txt")
c = 2
'ベースの開始する列の変更
Do While FILE <> ""
Open FILE For Input As #1 For r = 2 To 13
'セルに展開する行を指定
Line Input #1, s Cells(r, c) = Split(s, vbTab)(5) Next Close #1
FILE = Dir
c = c + 1
Loop
Range("B2:L13").Select Selection.Copy Sheets("測定結果報告書").Select Range("D5:N16").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
End Sub

何度やっても一瞬で完璧に処理が終わる…
だがさっぱり意味がわからん、、
本読みます。。

291 名前:デフォルトの名無しさん (ワッチョイ e2b5-G6fV) mailto:sage [2020/04/13(月) 22:52:20 ID:sGzWGZEv0.net]
ああ、ダメだ。'でメモりまくったけど
出力する側のエクセルシートの列の指定はわかったけど行の指定がわからなかった。勉強ですね。。
みなさんありがとうございました。

292 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 23:09:41.81 ID:nLvmNP810.net]
ちらっちらっ

293 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 23:14:07.84 ID:sGzWGZEv0.net]
ごめん、ダメだ。助けてください。
混乱しまくってます。全然違った
読み込むテキスト側の行指定がわからない、、
ベースの方にテキスト2行目8行目からを指示、
とかそれをしないと会社で対応できないです…

294 名前:デフォルトの名無しさん mailto:sage [2020/04/13(月) 23:21:22.07 ID:V6BYDDPb0.net]
そりゃ変数すら知らない知識レベルならこんな短時間じゃなんもできんだろう…

295 名前:デフォルトの名無しさん (ワッチョイ e2b5-G6fV) mailto:sage [2020/04/13(月) 23:39:16 ID:sGzWGZEv0.net]
先輩曰くとりあえずわからなくても1つ何か作ってそっから覚えていけと言われ…

Sub 指定フォルダの全テキスト絞り読み込み() ChDir "C:\Users\user\Desktop\測定機データ" 'フォルダ指定
FILE = Dir("*.txt") retu = 2
'ベース列決定でAは1から
Do While FILE <> ""
Open FILE For Input As #1
For Tekist = 3 To 12
'ベース任意行決めでテキストは1行目から
Line Input #1, s
Cells(Tekist, retu) = Split(s, vbTab)(5)
'テキスト初列を()で決めるがAは0から
Next
Close #1
FILE = Dir retu = retu + 1
'この数だけ列飛ばしにベースに読み込む
Loop
End Sub

'テキストを任意の行から読むのが課題4月13日

毎日勉強しないとなぁ。ほんと

296 名前:デフォルトの名無しさん (ワッチョイ f71f-nfbJ) mailto:sage [2020/04/13(月) 23:57:52 ID:k2GojJ+U0.net]
PDFファイル(画像)をEXCELに貼り付ける際の画像の素の大きさってどうやって取得できます?

297 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 00:02:13.22 ID:A2P11e7ma.net]
いきなり別ファイル(txtファイル)読み込んだり、配列変数あったりで難しいよ。
本来はもっと基礎からやらないと。

298 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 00:02:49.64 ID:PthiGcDI0.net]
>>293
テキストファイルは1行ずつ順番しか読み込むことができないから、3行目が必要な時は最初の2行を読み飛ばさないといけない

Open FILE For Input As #1
Line Input #1, s ' 1行目を読み込むだけで何も処理をしない
Line Input #1, s ' 2行目以下略
For Tekist = 3 To 12
  Line Input #1, s ' 3行目以降
  Cells(Tekist, retu) = Split(s, vbTab)(5)
Next



299 名前:デフォルトの名無しさん (ワッチョイ e2b5-G6fV) mailto:sage [2020/04/14(火) 00:29:53 ID:Ua5gdcz00.net]
>>296
本当に本当にありがとう、
上の人たちも本当にありがとう
無知のド素人の俺でも超完璧に動かせました
感謝しかないです。本当に勉強します


Sub 指定フォルダの全テキスト絞り読み込み() ChDir "C:\Users\ikuzo\Desktop\測定機"
'フォルダ指定
FILE = Dir("*.txt")
retu = 2  'ベース列を決定でAは1から
Do While FILE <> ""
Open FILE For Input As #1
'Line Input #1, s   
' 1行目を読むだけで何もしない(テキスト1行目からで良ければ普段は封印
'Line Input #1, s   
' 2行目以下略
For Tekist = 3 To 12
'ベース初行〜任意行決めでテキストは1行目からだが封印の解放により連動
Line Input #1, s
Cells(Tekist, retu) = Split(s, vbTab)(5)
'テキスト初列を()で決めるがAは0から
Next
Close #1 FILE = Dir retu = retu + 1
'この数字を変えた分だけ列飛ばしにベースに読み込む 
Loop
End Sub

'本当にありがとうございました4月14日

300 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 16:20:04.61 ID:BhIp9WlU0.net]
>>296
Tekist ワロタ

301 名前:デフォルトの名無しさん (スップ Sd02-AglQ) mailto:sage [2020/04/14(火) 18:14:44 ID:srMYTcHJd.net]
TekisutoでもTextでもTexteでもないのな

302 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 19:13:19.46 ID:Ua5gdcz00.net]
今日、神懸かり的に職場の測定機のPCのツールとして産声を上げました
あとは起動と同時に出るユーザーフォームにボタン4くぐらい作って割り当ててとりあえず完成しそうです

そして今日から本を愛読して変数について基礎から学んできます

自分で変えたのがわかるように誤記ぐらいにしとかないと何かのコマンドやコードがわからないので
textって打ったら先頭が大文字に変わるから
こりゃいかんと

303 名前:デフォルトの名無しさん (ワッチョイ bb7c-slfm) mailto:sage [2020/04/14(火) 19:29:23 ID:2/fcFDaL0.net]
なんでもいいから一つ作れってのは作ってもらえって意味じゃないと思うな

304 名前:デフォルトの名無しさん (ブーイモ MM5b-L0r9) [2020/04/14(火) 19:39:44 ID:5O9c120iM.net]
活気が出てええやん
過疎スレやし

305 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 21:50:12.98 ID:Ua5gdcz00.net]
変数の定義や宣言をとにかく最初にする癖をつければ
後でわかりやすいことが本でわかり
そして英字じゃなくてもいいことに驚きました

慣れてるたち人のサイトだと
Dim Folderpass As String
Dim FileInt As Long
とか英字だけど
Dim フォルダ場所 As String
Dim ファイル数 As Long

とか和文字だと支障でますかねこれ

306 名前:デフォルトの名無しさん (アウアウエー Sa3a-d4/r) mailto:sage [2020/04/14(火) 21:58:17 ID:A2P11e7ma.net]
個人的には変数名で日本語は避けてる。
逆に読みにくいので。

307 名前:デフォルトの名無しさん (ワッチョイ 23da-AglQ) mailto:sage [2020/04/14(火) 22:06:22 ID:4z3IdTPt0.net]
拙者も日本語はコメントで書くようにしてコードは英数字で書くようにしている

308 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 22:20:28.98 ID:Ua5gdcz00.net]
なるほど、俺も英字で作る癖つけた方が良さそうですかね
字の色でわかるだろ…とは言え、なんかの関数やコマンドと似てるとやはり最初は難しいですね
Tekist
Fname
Fpass
shseeet
とかにしてこれ俺の宣言した変数だわ
って最初は作ってみます
あざす!



309 名前:デフォルトの名無しさん (アウアウエー Sa3a-d4/r) mailto:sage [2020/04/14(火) 22:37:22 ID:A2P11e7ma.net]
変数の付け方とかで、書いた人の実力が分かるという説もあるから。
私は小文字で始めるキャメル式が見やすいと思って大体統一してる。

310 名前:今度はビルドとはとか言い出すんだろうか? (ドコグロ MMaf-Y19k) mailto:sage [2020/04/14(火) 22:38:37 ID:e6NkXt+SM.net]
> とか和文字だと支障でますかねこれ
今時C/C++ですら変数名に漢字使えたりするぐらいだから問題ない
特にフォルダーパスをFolderpassとか書くような人は積極的に使うべき

311 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 22:53:49.36 ID:PthiGcDI0.net]
VBAだとそんなに困ることはないんだけど、.netはライブラリが膨大すぎて、既存のメソッドやプロパティと名前が被るかどうかの確認が面倒
あと、語彙力が足りなくてユニークな英単語が思いつかないとか、辞書で調べて付けた変数名があとから見返すと意味がわからないとかある

312 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 23:05:59.10 ID:wBIN668P0.net]
>>309
>語彙力が足りなくてユニークな英単語が思いつかないとか
曜日、曜日って英語でなんて言ったかなー
せや、yb ですましたら

313 名前:デフォルトの名無しさん (ワッチョイ f709-zfCe) mailto:age [2020/04/14(火) 23:20:30 ID:1uq460ot0.net]
最近プログラム自体始めた初心者です。
日々勉強ばかりですので、汎用性が高くなるよう目指し、
知識を入れてはコードを改良し、それを外部保存、そして
実行するブックで呼び出して使っています。

ついこないだ引数という便利なものを知り、さっそく使っているのですが、
ひとつ疑問が。
「特定セルに、作成したリストの上から順に内容を書き込む」という
簡単なfor〜nextループマクロを使いまわしたいのですが、そのループ処理内容を
callなどから設定することはできるのでしょうか?
(たとえば、あるブックでは印刷処理したい、けどこっちではシートコピー処理したい、
など)

引数で、特定セルやリストの開始行は設定できたのですが。。。
宜しくお願いいたします。

314 名前:デフォルトの名無しさん mailto:age [2020/04/14(火) 23:23:30.52 ID:1uq460ot0.net]
>>311です。一部分かりづらかったので訂正いたします。
×「そのループ処理内容をcallなどから設定することは〜」
〇「そのループ処理内容を、実行するブックから設定することは〜」

315 名前:デフォルトの名無しさん [2020/04/14(火) 23:30:42.95 ID:ps8T64zC0.net]
馬鹿が一気に出てきたのはコロナウイルスで脳炎や痴呆症でも発症するのか?

316 名前:デフォルトの名無しさん mailto:sage [2020/04/14(火) 23:31:29.82 ID:PthiGcDI0.net]
>>311
サブルーチンの中にブック名を判定するIfを入れるとか、引数を増やして処理を切り替えるとか、方法はいくつもある

317 名前:デフォルトの名無しさん (ワッチョイ e2b5-G6fV) mailto:sage [2020/04/14(火) 23:44:19 ID:Ua5gdcz00.net]
Sub データ数の確認()
Dim FoPath As String
Dim Fname As String
Dim Fnum As Long
Dim SetPath As String FoPath = "C:\Users\user\Desktop\測定機"
'フォルダのパスを指定する
Fname = "*.txt" 'ファイル名と拡張子指定 Fnum = 0
'ファイル数を一度0にする
'指定したフォルダパスとファイル名をセット
SetPath = Dir(FoPath & "\" & Fname)
Do While SetPath <> ""
'ファイル名が取得出来なくなるまでループ Fnum = Fnum + 1
SetPath = Dir()
Loop
MsgBox Fnum & "つデータが入っています。"
End Sub


見様見真似というかネットからパクってユーザーフォームのボタンに追加できました。
このスレの人たち凄いです

318 名前:デフォルトの名無しさん (ワッチョイ 068e-f9/D) [2020/04/14(火) 23:55:34 ID:ps8T64zC0.net]
いい加減に馬鹿は消えろ



319 名前:デフォルトの名無しさん (ラクッペペ MM8f-AKYr) [2020/04/15(水) 00:06:27 ID:IBkk3oxvM.net]
>>311
他のナウい言語みたいに関数ポインタとか使いたいのだろうが
おとなしくコマンド文字列でも渡してselectでもしとけ

320 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 01:14:25.80 ID:vPyadW120.net]
ナウい変数名を考えようと思って色々試したら、結構いけるじゃん。

Dim ヽ, 卍, ¶, , f, , , ≒, ♪

♪ = 1
Debug.Print ♪

321 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 01:17:01.85 ID:vPyadW120.net]
あ、普通にこれでいいか。

Dim 骸骨剣士, 死霊の騎士, 幽霊, 死神

322 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 01:24:08 ID:Ikiffowr0.net]
For 愛 = 1 To 10

323 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 01:34:17 ID:Ikiffowr0.net]
>>319
うちの新人が最初に書いてきたコードがそれだったわ (実話
もちろん熟語の意味と変数の用途は無関係で、厨二ワードを思いつきで適当に並べただけ

324 名前:デフォルトの名無しさん (ワッチョイ 57ad-LzhE) mailto:sage [2020/04/15(水) 02:43:11 ID:zLal5e060.net]
>>311
初心者なら具体的な処理を抽象化していく
ボトムアップのやり方が分かりやすいと思う

たとえばかけ算の九九を求める関数に
引数でXを渡してXxX(12×12など)を
求める関数に抽象化すると使い道が広がる

あるいは5行6列目のセルを処理する関数を
X行Y列目を処理するように拡張するだとか
関数の引数は数学の変数のように考える


そして関数(やクラス)を自作する時のポイントは
なるべく関数を小分けにして組み合わせて使うこと
関数が大きくなると理解するのも難しくなるから

印刷やシートのコピーとか別の処理を
ひとつの関数で全部やろうとしないで
別々の関数に書いておく

それで呼び出し元の関数から
実行する関数をIF文で切り替えたりする
Excel VBAに限らずプログラミングの定石

325 名前:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r) mailto:sage [2020/04/15(水) 08:51:03 ID:7yJWhPoQ0.net]
個人的な意見だけど
変数を日本語にする事の欠点は、目立ちすぎて、他が見にくくなる事だと思う
ループカウンタの様な頻出する変数には、制御構造が見にくくなるので避けるべき
ルーチンの目的的なものとか、あまり使わないような変数については、場合によっては推奨

326 名前:デフォルトの名無しさん (ワッチョイ d7ac-DNPS) mailto:sage [2020/04/15(水) 10:07:54 ID:fYr2Vm730.net]
いいたいことはわかる
なでしこみたいに構造もそうなってれば、比較して自然に見えるしね

まあでも英語で慣れちゃってると、気になっちゃうから可読性低いと評価してしまうわ

327 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/15(水) 11:57:43 ID:qO0uVKDC0.net]
>>303
絶対に止めた方が良い。
今、他人のそういうコードで四苦八苦してる。

しかもプロシージャも日本語だから
If 測定結果 Then
などとあって、"測定結果"が変数なのかBooleanを返すプロシージャなのかすら直ぐには分からない。

328 名前:デフォルトの名無しさん [2020/04/15(水) 12:04:59.54 ID:tJWgJTOGM.net]
それはエーゴでもかわらなくなくね?



329 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 12:43:22.36 ID:9r3ObWq4r.net]
>>32
「定義」ですぐわかる

330 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 12:47:51.20 ID:9r3ObWq4r.net]
325の間違い

331 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 13:14:16 ID:Ikiffowr0.net]
がっつり英語だと、こんどは辞書を引く作業が待ってることもある
発音がわからないと会話で困るし

332 名前:デフォルトの名無しさん (ワッチョイ 778f-Eg7/) [2020/04/15(水) 13:39:00 ID:zDLD/Qb60.net]
特定のURLのソースに任意の文字列が記載されているかどうかを判断したい。

https://auctions.yahoo.co.jp/seller/abcdfgh
https://auctions.yahoo.co.jp/seller/zakattas
https://auctions.yahoo.co.jp/seller/zafect789
というページのリストがあったとして、ソースに"停止中"もしくは"無効"の文字列が
あるURLにはB列に"NG"と吐き出す、ということをやりたいです。

https://okwave.jp/qa/q6120067.html
が近いんですが「2)一般的な文字列の場合」はエラーが出て動きませんでした。
VBAに詳しい人、よろしくお願いします。

333 名前:デフォルトの名無しさん (アウアウエー Sadf-Ho7r) mailto:sage [2020/04/15(水) 13:51:28 ID:5mkkxmmPa.net]
grep なら一行でできるのに VBA でやらないといけないのか

334 名前:デフォルトの名無しさん (ワッチョイ bff7-pwY/) mailto:sage [2020/04/15(水) 13:53:51 ID:VtNtlccy0.net]
人に送ったら日本語フォントない海外PCで全く動かなくなったりしたな

335 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 14:13:32 ID:Ikiffowr0.net]
>>330
参考リンク先のどのプログラムを試して、どの行でどんなエラーが出たか書いて
エラーが出たままでCtrl+Cを押せば、エラーメッセージがクリップボードに入るから、それをコピペして
あと、目的のWEBサイトの文字コードはちゃんと確認した?

336 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/15(水) 14:16:13 ID:Ikiffowr0.net]
>>331
まあ wget | nkf | grep のが簡単かもね

337 名前:330 (ワッチョイ 778f-o1R8) mailto:sage [2020/04/15(水) 14:42:43 ID:zDLD/Qb60.net]
>>333
すいません。
コピペ繰り返してたらなんとか行けました。

Sub YouTube_Search()
Dim objIE As Object
Dim i As Long
Dim j As Long
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
For i = 1 To Range("A1").End(xlDown).Row
.navigate Cells(i, 1).Value
While .Busy Or .ReadyState <> 4: DoEvents: Wend
For j = 1 To .document.all.Length
If InStr(.document.all(j - 1).outerText, "Yahoo! JAPAN IDが無効です") > 0 Then
Cells(i, 2).Value = "*"
Exit For
End If
Next
Next
End With
objIE.Quit
Set objIE = Nothing
End Sub

338 名前:デフォルトの名無しさん (スップ Sdbf-N0vN) mailto:sage [2020/04/15(水) 14:43:10 ID:dyZQaRRHd.net]
>>326
確かに。
でも日本語フィールドが多いSQL文の中で、一部の変数も日本語だったりするのとか、変数と気付かなかったりするのもあるし、最悪だよ。



339 名前:デフォルトの名無しさん (アウアウウー Sa1b-4fgg) mailto:sage [2020/04/15(水) 15:14:20 ID:4idtb0t/a.net]
かわらなくね?かわらなくなくね?

340 名前:デフォルトの名無しさん (ドコグロ MMbf-A2g6) mailto:sage [2020/04/15(水) 19:27:28 ID:DRi90/CyM.net]
>>325
なんの測定なのか知らんけど測定結果がBooleanな時点で知能の足らない職場と言うことがわかる
コードレビューなんてしたこと無いだろ

341 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 21:47:05.33 ID:vXo73Hp80.net]
辞書で調べても馴染みのない単語でかえってわかりにくくて結局日本語にしてみたりね

342 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 22:13:27.05 ID:qXjFLib20.net]
311です。

>>314,317,322
私がやろうとしていたことが、まず効率の悪いことだったんですね・・・
細かく分けて関数作って、それを組み合わせて作る方法を取りたいと思います。
(ただ、どこまで細かく分ければいいのか、まだ要領を掴んでおりませんが)
ありがとうございました。

343 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/15(水) 22:29:20 ID:bRq9+Y6qM.net]
初心者ですがご教授下さい

サンプルの工程能力で1個につき6項目の測定値をソフトがエクセルにデータ出力してくれるけど、日によっては23個だったり25個だったりしか測定できず

残りの記入方法は人によって様々で
ある人は測定値のバラつきに近い値をテンキーで手打ち
ある人はエクセルのrandbetween関数で
各項目の測定値のMAXとMINで乱数だしてそれをコピぺ

サンプル1 サンプル2  〜サンプル30
項目1
項目2
項目3
項目4
項目5
項目6

こんな並びで全項目測定後に出力されるから項目の途中で止まることはないです

「サンプル1〜30の間の項目1の行に空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」

これは難易度かなり高いですか?

344 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/15(水) 22:33:03 ID:bRq9+Y6qM.net]
誤記というか間違えました
「サンプル1〜30の間の項目1の列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に乱数でサンプル30の項目6まで埋める」
です
すみませんがどういったアプローチがあるのか
そもそもできるのかご教授下さい

345 名前:デフォルトの名無しさん (アウアウエー Sadf-fVbL) mailto:sage [2020/04/15(水) 22:49:03 ID:xz8oNroja.net]
>>342
それは多分難しくないと思うけど、読解力がなくてよく分からない。
サンプル的なものを挙げてもらえると分かりやすいかも。

346 名前:322 mailto:sage [2020/04/15(水) 23:00:46.12 ID:zLal5e060.net]
>>340
>どこまで細かく分ければいいのか
基本的に処理は関数名に沿って分ける

関数名から逸脱した処理があれば
別の関数に分けて整理していく

だから関数や変数の
適切な命名が重要になってくる

面倒でも名前と処理を対応させた方が
後でメンテナンスしやすくなる

347 名前:デフォルトの名無しさん [2020/04/15(水) 23:19:56.30 ID:bRq9+Y6qM.net]
>>343
いや、俺の説明力がなくて、、
というか行列が逆でした
再度説明させてください

https://i.imgur.com/D4MOqky.jpg
こんな感じで機械がエクセルに出力してくれるけど
残りのサンプルの数字は上の測定値を見てみんなそれぞれランダムにテンキーで入力したりと、いわゆる数値を適当にバラして打ち込んでます。(偽装というほど重要ではないので)
日によって測定できるサンプルが数が違います。

参考になるか程度のスクショになりますが

「サンプル1から30までで空白の行列があったらそれまで測った上のサンプルの測定値を元に乱数でサンプル30の項目6までVBAが全て記入してくれないかなと、

こんな感じです

348 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 23:34:48.80 ID:xz8oNroja.net]
「列、又はセルに空白があった場合、それより前(左)にある全ての測定値を参考に」というのは?

その例でいうと、
・項目1のサンプル8、9、10が空欄なので、1から7の数値を元にして適当な数値で埋める。
・残りの項目についても同様

ということですか?つまり上の数値を元にしてるけど。

処理自体は難しくないとは思います。



349 名前:デフォルトの名無しさん [2020/04/15(水) 23:57:01.64 ID:bRq9+Y6qM.net]
>>346
その例でいうと、というか今の職場の手間になってる仕事がまさにその通りです
上の数値を元に残りの項目を誰かが埋めてます

どんなアプローチで行ったらよさそうかアドバイスいただませんか
Rnd関数Int関数、Loop、Offset
調べてもなかなかわからずです‥

350 名前:デフォルトの名無しさん mailto:sage [2020/04/15(水) 23:58:14.63 ID:Ikiffowr0.net]
>>345
数字を偽装するルールが人によって違うのはわかったけど、あなたはどういうルールでやりたいのか、もうちょっと厳密に書いて
「それまでの数値を参考に」という表現では曖昧すぎてプログラミングできない

例として、サンプルが7個しかなかった場合は、その7個の数字をどう使って30個に増やすのか?

351 名前:デフォルトの名無しさん [2020/04/16(木) 00:23:27.26 ID:WB3hiXkKM.net]
>>348
数式と一覧を削りましたが普段はここの赤矢印に測定したデータのMax値とMin値を入れて
EXCELの関数でこのような数式で乱数を
出しています
数年前に自力で作ったけどもはや覚えていないレベルです
https://i.imgur.com/eglO3Ph.jpg

352 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/16(Thu) 00:25:05 ID:WB3hiXkKM.net]
あとスクショ取りたいが故に行数の抜けやズレが、、、すみません

353 名前:デフォルトの名無しさん (ワッチョイ 9f85-i57j) mailto:sage [2020/04/16(Thu) 00:30:19 ID:eKixqxFQ0.net]
最低値+rnd×最大最低の差で乱数になるよ

354 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 00:35:38 ID:YY8HOOMA0.net]
とりあえず行と列の位置は>>345の画像に合わせて作ったから、あとは適当に修正して

Sub Macro1()
  For 項目 = 1 To 6
    列 = 項目 + 2
    最小 = Application.WorksheetFunction.Min(Cells(6, 列).Resize(30)) * 1000
    最大 = Application.WorksheetFunction.Max(Cells(6, 列).Resize(30)) * 1000
    For サンプル = 1 To 30
      行 = サンプル + 5
      If Cells(行, 列) = "" Then
        Cells(行, 列).NumberFormatLocal = "0.000"
        Cells(行, 列) = Application.WorksheetFunction.RandBetween(最小, 最大) / 1000
      End If
    Next
  Next
End Sub

355 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 00:52:18 ID:YY8HOOMA0.net]
>>351の方法を取り入れてみた

Sub Macro1()
  For 項目 = 1 To 6
    列 = 項目 + 2
    最小 = WorksheetFunction.Min(Cells(6, 列).Resize(30))
    最大 = WorksheetFunction.Max(Cells(6, 列).Resize(30))
    幅 = 最大 - 最小
    For サンプル = 1 To 30
      行 = サンプル + 5
      If Cells(行, 列) = "" Then
        Cells(行, 列).NumberFormatLocal = "0.000"
        Cells(行, 列) = Rnd() * 幅 + 最小
      End If
    Next
  Next
End Sub

356 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/16(Thu) 01:25:57 ID:ltLJf2qHM.net]
>>353
神様過ぎびっくりです。

セルをクリックすると.0754322457888とか小数点が残ってるのですがこれを
EXCELのROUND関数みたいに四捨五入した状態でここに出力するようにできますか?
四捨五入で0.000の桁で出力できたらもう
職場の2人が失職してしまうレベルです

357 名前:デフォルトの名無しさん (ワッチョイ d7ac-DNPS) mailto:sage [2020/04/16(Thu) 01:33:01 ID:5emHbHZx0.net]
それくらい調べたんかな

358 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 01:41:31 ID:YY8HOOMA0.net]
>>354
Cells(行, 列) = Round(Rnd() * 幅 + 最小, 3)

実際、ごく簡単なマクロで仕事を効率化したおかげで毎年たくさんの失業者が出てるからほどほどにな
経営側でなければ、サビ残がなくなるぐらいのところでやめとけよ



359 名前:デフォルトの名無しさん [2020/04/16(木) 01:59:01.29 ID:dFCopLc9M.net]
>>356
神様ありがとう。涙出てきました。

360 名前:デフォルトの名無しさん [2020/04/16(木) 02:43:35.11 ID:Kf4avcM70.net]
>>357
またこの間の馬鹿か

361 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 03:23:43.55 ID:KenjGRyod.net]
無意味なデータ入力に数百万の人件費を払う会社か
すげーな
マクロで解決するより、その作業をなくす方法を真剣に考えた方がいいんじゃないか?

362 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 08:08:02.24 ID:IIRVmVIhr.net]
コード教えて君もいるし、PC博士気取れるから教えちゃうやつもいる

363 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 08:16:07.12 ID:Br0d9N6Q0.net]
一時しのぎにはなっても長い目で見れば迷惑にしかならない

364 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 10:34:35.59 ID:HIOPYfc5a.net]
自力でマクロも書けんやつが作ったマクロで会社の経理やるなんてブラック企業しかない

365 名前:デフォルトの名無しさん (スフッ Sdbf-xa8R) mailto:sage [2020/04/16(Thu) 11:54:49 ID:wE+PDO4Yd.net]
4月は零細の新入社員が単純作業をマクロでどうにかしようとがんばる時期

366 名前:デフォルトの名無しさん (ワッチョイ 7749-DNPS) mailto:sage [2020/04/16(Thu) 11:56:31 ID:RK65w6zF0.net]
そして保守できずに五月病で辞める

367 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 12:13:47.85 ID:6vJJDJtDM.net]
>>363
もともと99%はブラックだし
会社の規模とか無関係に

368 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 12:29:59.97 ID:mPB4Kayur.net]
初歩的な質問なんですけど、ロック付きのブックを編集してSaveAsやcloseで保存したときにロックなしのブックにしたいんですが、どうやればできますか?



369 名前:270 (ワントンキン MMcf-4RW9) mailto:sage [2020/04/16(Thu) 12:54:20 ID:cYWHpILcM.net]
>>366
イベントプロシージャにロックを外す処理を書けばいい

370 名前:デフォルトの名無しさん (アウアウウー Sa1b-4fgg) mailto:sage [2020/04/16(Thu) 13:43:07 ID:pZjivNa8a.net]
ロックかけた人に外してもらう

371 名前:デフォルトの名無しさん (アウアウウー Sa1b-4fgg) mailto:sage [2020/04/16(Thu) 13:47:25 ID:pZjivNa8a.net]
俺に会社の経理やらせてくれたら自分の口座に自動で入金する処理入れるよ

372 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 14:50:28.74 ID:xWZcVh5Wa.net]
画像フォルダのファイル名を取得→ファイル名と同じ文字列の入ったセルに画像を挿入→画像をセルのサイズに合わせるというサンプルコードを見つけたのですが
画像フォルダ内にファイル1〜5まであり、エクセル内にファイル1の文字列がない場合、「オブジェクト変数またはwithブロック変数が設定されていません。」のエラーが出ます
おそらくIFでその場合の処理を設定すればよいのではと思うのですが、変数の設定の仕方が分からないです
昨日今日始めたネット聞きかじりの知識で申し訳ございませんがアドバイス頂けないでしょうか

373 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:01:25.35 ID:YY8HOOMA0.net]
>>370
まずはうまく動かないコードをここに書いて

374 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:08:48.79 ID:RK65w6zF0.net]
こらはまたコード出してくれるの待ってるクレクレ君

375 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:11:15.02 ID:xWZcVh5Wa.net]
>>371
ネット丸パクリのコードだけど

Sub sample04()
Dim objShape As Object
Dim strPath As String, strFileName As String
Dim strImgName As String

strPath = "c:¥temp¥"
strFileName = Dir(strPath & "*.jpg")

Do Until Len(strFileName) = 0
strImgName = Left(strFileName, Len(strFileName) - 4)

Cells.Find(What:=strImgName).Activate
ActiveCell.Offset(0, 1).Activate

Set objShape = ActiveSheet.Shapes.AddPicture( _
Filename:=strPath & strFileName, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top, _
Width:=ActiveCell.Width, _
Height:=ActiveCell.Height)

strFileName = Dir()
Loop

End Sub

376 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 15:12:43.83 ID:xWZcVh5Wa.net]
最終的には画像1-4はシート1、5はシート2みたいな感じに貼りたいんだがとりあえず画像1の文字列ないとエラー起こすのを直したいです

377 名前:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r) mailto:sage [2020/04/16(Thu) 16:37:22 ID:V7jYJHWg0.net]
どこでエラーが起きてると思う?
検索して見つからなかったセルに対して何かをしようとしたから、何に対してやるんだよーってエラーが起きたんだよ

コードを見ると、Findメソッドの戻り値に対して直接Activateしてるから、そこをばらす必要があるので、一旦戻り値を変数に受けるといい
セルはRangeオブジェクトで、 Findメソッドは通常、Rangeオブジェクトを返す
オブジェクトを変数に代入する場合は、 Set をつける
見つからなかった場合はFindメソッドはNothing を返す
オブジェクトの比較には、Is を使う 例: If Not(r is Nothing) Then 〜

あとはがんばれ

378 名前:デフォルトの名無しさん (ワッチョイ ff8e-eUuY) [2020/04/16(Thu) 17:37:30 ID:Kf4avcM70.net]
馬鹿がコピペで作ったものは使い物にならない



379 名前:デフォルトの名無しさん (オッペケ Sr8b-LtOn) mailto:sage [2020/04/16(Thu) 18:14:58 ID:mPB4Kayur.net]
>>367
ありがとうございます。やってみます

380 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/16(Thu) 18:19:31 ID:YY8HOOMA0.net]
Sub sample04()
  Dim objShape As Object
  Dim strPath As String
  Dim strFileName As String
  Dim strImgName As String
  Dim rngStatus As Object
  strPath = "c:\temp\"
  strFileName = Dir(strPath & "*.jpg")
  Do Until

381 名前:strFileName = ""
    strImgName = Left(strFileName, Len(strFileName) - 4)
    Set rngStatus = Cells.Find(What:=strImgName)
    If Not (rngStatus Is Nothing) Then
      rngStatus.Offset(0, 1).Activate
      Set objShape = ActiveSheet.Shapes.AddPicture( _
      Filename:=strPath & strFileName, _
      LinkToFile:=False, _
      SaveWithDocument:=True, _
      Left:=ActiveCell.Left, _
      Top:=ActiveCell.Top, _
      Width:=ActiveCell.Width, _
      Height:=ActiveCell.Height)
    End If
    strFileName = Dir()
  Loop
End Sub
[]
[ここ壊れてます]

382 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 18:52:45.98 ID:Cbge2SK50.net]
>>369
自動なのにトロイ処理とはこれいかに!

383 名前:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r) mailto:sage [2020/04/16(Thu) 19:18:26 ID:np7lPiVv0.net]
>>342
「それより前(左)にある全ての測定値を参考に」が仕様としては曖昧模糊としてる気がする。

384 名前:デフォルトの名無しさん (ワッチョイ 77da-o3Ob) mailto:sage [2020/04/16(Thu) 19:21:15 ID:XXRRqnVg0.net]
>>375
>>378
ありがとうございます、動かしながら理解していこうと思います

385 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 20:15:43.63 ID:/BsiXYGwd.net]
>>338
知らねーよ。
10年以上前の、他社から引き継いだ、正直全部書き直したいけど今動いてるからそっとしておいてるコードだよ。

386 名前:デフォルトの名無しさん (ワッチョイ 9f01-h94e) mailto:sage [2020/04/16(Thu) 21:03:51 ID:l2cOjNdn0.net]
指摘されたら他社とか言い出してて笑うわ

387 名前:デフォルトの名無しさん [2020/04/16(木) 21:21:39.75 ID:Gr+82O4W0.net]
>>381
理解もできない代物を知らない誰かの作ったコードで動かそうという馬鹿

388 名前:デフォルトの名無しさん mailto:sage [2020/04/16(木) 22:03:58.10 ID:5vefqm3N0.net]
理解してないコードを使う無能に仕事やらせるとかやっぱブラックだったか



389 名前:デフォルトの名無しさん (ワッチョイ ffe6-ycCE) mailto:sage [2020/04/16(Thu) 23:38:37 ID:NQ0wsZwj0.net]
そもそもexcelVBAって素人が頑張って自動化してみましたってのが99%なんだから
そういうのをメンテしなきゃならない羽目になったって話だろ
プログラム板の中では異質なスレなんだと思う

コードレビューとか言ってるやつは確実にアスペ、そういう事情が想像出来る脳みそが生まれつき備わってない
相手するだけ無駄

390 名前:デフォルトの名無しさん (ワッチョイ d7ac-DNPS) mailto:sage [2020/04/17(金) 00:46:06 ID:TM3fWeSx0.net]
他の誰かがってのは全部言い訳
仕事してメンテするなら自分自身が目の前の有りものを完全理解しないといけない

事情は関係ない
仕事としてやる以上自分の責任として取り組むべき
それを怠って開き直るのは無責任であり無能でありいつまでも何も成せない

趣味ならしらん

391 名前:デフォルトの名無しさん (ワッチョイ 77da-Uqc8) mailto:sage [2020/04/17(金) 01:58:25 ID:d5pl8NtJ0.net]
>>386
素人がつくろうが会社で使うんだろう

392 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 05:06:04.15 ID:K8Kq74SuM.net]
>>386
> 今、他人のそういうコードで四苦八苦してる。

> 今動いてるからそっとしておいてるコードだよ。

言うことコロコロ変わりすぎw

393 名前:デフォルトの名無しさん (ワッチョイ 9fb5-5bTb) mailto:sage [2020/04/17(金) 17:04:26 ID:hqq8FpSv0.net]
散々ここで聞きまくって不快な思いをさせた物ですが完全に職場での運用に成功しました。
本当にみなさんのおかげというか頭良すぎですねここの人は…
フォルダ内にあるtxt全ての任意の列行を片っ端からエクセルにコピーする
空白の部分は乱数で処理
この辺は無知にとってはえげつないです。
提案で出そうと思ったらもっと大きな発表テーマで使うぞと言われました。
100のワークの測定データを作るのに2日かかってたのが5分でテンプレートに出力完了…

394 名前:デフォルトの名無しさん (ワントンキン MM7f-tZ20) mailto:sage [2020/04/17(金) 18:42:59 ID:35vznKDBM.net]
>>390
馬鹿は死ねよ

395 名前:デフォルトの名無しさん (ワッチョイ b7e6-R0o5) [2020/04/17(金) 18:48:40 ID:M4VM/pj30.net]
せっかくtxtという利用しやすいデータ形式なのに
わざわざxlsなんかにしちゃって
トドメとばかりにゴミデータをインプラント

面白い人だな

396 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 19:49:43.28 ID:d0l4uzMSd.net]
>>383
実際そうだし、というか、そんなの多いぞ。

397 名前:デフォルトの名無しさん (スプッッ Sdbf-N0vN) mailto:sage [2020/04/17(金) 19:52:36 ID:d0l4uzMSd.net]
>>386
素人じゃないと思うよ。
形の上では。

お客は自ら作るという会社では無い。
作ったのは請け負っている会社だよ。
コメントに会社名らしきものが書かれてるし。

398 名前:デフォルトの名無しさん (スプッッ Sdbf-N0vN) mailto:sage [2020/04/17(金) 19:58:42 ID:d0l4uzMSd.net]
>>389
あのね、客の要望は有るんだよ。
要望に答えるためには、今動いてるものも解析しないと答えられるわけが無い。
そのコ一ドが何やってるかわからずに機能追加なんてできるわけが無い。

というか、こんなのVBAに限らず開発やってる会社なら何処でもある話だけどな。
ここには開発専門で仕事したことのある奴が少ないということか。



399 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 20:10:16.78 ID:SpmVGRc5M.net]
他社が作ったコードを客の要望で機能追加
しかもVBA
そんなズタボロの状態で開発専門とか大丈夫かよw

400 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 20:49:15.97 ID:d5pl8NtJ0.net]
>>394
その会社名らしきところに使用料とか払った?
それともその会社に無断で会社名入りのファイル使ってるの?

401 名前:デフォルトの名無しさん (ワッチョイ d7e5-sLxe) mailto:sage [2020/04/17(金) 21:12:50 ID:zPgoaBKN0.net]
自分で書いたコードでも嫌です

402 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 21:26:37.34 ID:d0l4uzMSd.net]
>>396
今まで幾つかの開発会社で働いたが、どこでもある話。
VBAにも限らない。
まあ、日本語変数とか日本語関数はVBA以外では聞いたこと無いけどな。

前のコードが酷いので、書き直したらもっと酷くなったなんて、某SE本にも書いてあった。

403 名前:デフォルトの名無しさん mailto:sage [2020/04/17(金) 21:28:25.17 ID:d0l4uzMSd.net]
>>397
プログラムは客のもんなので、そんな話にゃならねーよ。
普通はそうなる。
客のもんになってない例もあるかもしれんが見たこと無い。

404 名前:デフォルトの名無しさん (スプッッ Sdbf-N0vN) mailto:sage [2020/04/17(金) 21:30:17 ID:d0l4uzMSd.net]
>>397
これ、VBAの話ね。
コンパイルする言語の場合はそうでない例があったな。

405 名前:デフォルトの名無しさん (ドコグロ MMeb-h94e) mailto:sage [2020/04/17(金) 21:52:47 ID:z6C6Zgo5M.net]
>>400
> プログラムは客のもんなので

> 他社から引き継いだ

ボロ出し過ぎw

406 名前:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r) mailto:sage [2020/04/17(金) 22:02:00 ID:yYE4gKbd0.net]
いい加減、他人の宿題とか仕事とかに安易に回答与えるのやめたほうが
いいんじゃないかと。

407 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/17(金) 22:44:22 ID:j6CUwBsl0.net]
大手から零細まで、色々なところで仕事してきたけど、会社によっては日本語の関数とか変数は別に珍しくなかったな

408 名前:デフォルトの名無しさん (アウアウエー Sadf-Ho7r) mailto:sage [2020/04/17(金) 23:04:41 ID:tPgd0P7Wa.net]
現実問題として、VBAで複雑なマクロを書くと重くて動かないと思うんだけどな
それでも我慢して使っているのかな?



409 名前:デフォルトの名無しさん (ワッチョイ ffda-Ho7r) mailto:sage [2020/04/18(土) 08:44:33 ID:FzSpO5p/0.net]
Excelでポリゴンゲー作るとか、
相当極端なことをしない限り大丈夫。

410 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 09:44:05.01 ID:QhOAvRvA0.net]
複雑な処理だからって重くなることはないだろ
重い処理をするから重くなるのであって

411 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 12:59:54 ID:DE4BsnuO0.net]
>>402
お前、事務員だろ。
自分のボロに気付いて無いw

開発会社で働いたことある奴ならすぐわかる。

412 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 13:06:18 ID:DE4BsnuO0.net]
>>405
スキルの低い奴はそうなる。
もちろんVBAは遅いけど、VBAで実施するようなことで、どうしても遅くなると想定されるような処理は殆ど無い。
VBAで実施するようなことじゃなければ別だが、そういう話はあまりない。

413 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 13:08:05 ID:DE4BsnuO0.net]
>>404
話には聞いたことがあるが、自分が目の当たりにしたのは今回が初めてだ。

414 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:16:31.33 ID:XwSVwu50d.net]
関数名だけ日本語ってルールにしてるところは見たことがある
意外と見づらくなかった

415 名前:デフォルトの名無しさん (ドコグロ MMbf-h94e) mailto:sage [2020/04/18(土) 13:29:04 ID:bylan2xBM.net]
>>408
> 開発会社で働いたことある奴ならすぐわかる。
なら

416 名前:詳しく説明してみなよ
客のものを勝手に引き継ぐとか犯罪だぞw
[]
[ここ壊れてます]

417 名前:デフォルトの名無しさん (ドコグロ MMdf-h94e) mailto:sage [2020/04/18(土) 13:33:12 ID:jvR0dANmM.net]
>>411
まあ、読むのは慣れだと思う
慣れればそんなに苦じゃないし意味不明な英訳調の関数名や変数名よりマシ
ただ入力がかなり面倒

418 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:38:19.65 ID:DE4BsnuO0.net]
>>412
???
日本語が理解出来ない人?

客が依頼していた開発会社を変えただけのことだろ。
10年前依頼されてた開発会社のコメントがソースにあったが、プログラムは客のもんだ。
今、依頼されてるうちの会社がどうして10年前に依頼されてた会社の了解を取る必要がある?



419 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:43:26.52 ID:DE4BsnuO0.net]
>>412
というかね、こんなの普通によくあることだぞ。
別会社のコメントなんて何度も見たことある。

開発会社で働いたことあれば、そんな所に違和感なんて感じないだろ。

420 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 13:53:22.59 ID:oUZZgMAe0.net]
ソースコードの著作権をどっちがもつかは契約によるぞ
著作権をシステム会社側がもってるのに違う会社に開示したらそれは違法行為
知らずにやってるってのは昔はよく聞いた

10年前に依頼されてた会社の了解を取る必要はないが
普通はソース開示受けるなら開示元に著作権の確認はする

421 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 14:00:07.44 ID:DE4BsnuO0.net]
>>416
そんなの常識だろ。
だが、そこまで分かってるなら結論も容易に想定出来ると思うんだが。

VBAの開発ではExcelならブックそのものにソースが付いてくるし、実質派遣のような形態も多い。
つまり、契約上客のもんになってると想定するのが普通。

422 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 14:01:39 ID:DE4BsnuO0.net]
ここで言ってる想定ってお前のことだからな。
そんな想定も出来ずにいちゃもん付ける奴に言ってる。

423 名前:デフォルトの名無しさん (ドコグロ MMdf-h94e) mailto:sage [2020/04/18(土) 14:04:14 ID:p9WER9c7M.net]
>>414-415
> 客が依頼していた開発会社を変えただけのことだろ。
それ引き継ぐなんて言わんだろ
お前の会社から見たら単に客から改修を依頼されただけ
元のソースを別会社が作ってたか客が作ってたかなんて関係ないし

> 日本語が理解出来ない人?
お前の日本語がおかしいだけ
まあどんどん辻褄合わなくなってるだけとも言うがw

424 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 14:05:27 ID:DE4BsnuO0.net]
>>419
???
言うだろw

日本語を理解出来なかった言い訳が見苦しいw

425 名前:デフォルトの名無しさん (ワッチョイ bf2f-8Jcx) mailto:sage [2020/04/18(土) 15:07:20 ID:oUZZgMAe0.net]
>>419
日本語がおかしいというより、自分の脳内理解が共通認識だって信じて疑わない人だったようだぞ
かまった俺も悪かったが、俺は今後スルーするからお前もそうしろ

426 名前:デフォルトの名無しさん (ワッチョイ d7ac-RTks) mailto:sage [2020/04/18(土) 15:20:13 ID:mWjkYk7T0.net]
スレ違いになってきてるとは思うが。

最初のほうの386には
「そもそもexcelVBAって素人が頑張って自動化してみましたってのが99%なんだから
そういうのをメンテしなきゃならない羽目になったって話だろ」
って書いてあって、
ここ数レスはプログラム(開発資産)として引き継いだ中のVBAソースコードに焦点が当たってるように見える

まず引き受けた方がプロ(仕事としてVBAをやる)として、
前者ならドキュメントとかなくても(時間さえあれば)改修も簡単だろう。
後者ならドキュメント残してないやつ、もしくはそれを知らずにスキルもなく引き受けたやつが悪い。

まあこんな、前提とゴールをあやふやにして不毛で幼稚な言い合いをしたいなら別にスレを立ててろ

427 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 15:25:44.82 ID:R5ze2oyiM.net]
>>420
> 言うだろw
言うのはお前だけなw

>>421
知ったかが盛って語ったら引っ込みつかなくなったパターンだと思う

428 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 15:45:18.98 ID:DE4BsnuO0.net]
>>422
開発やったこと無い奴だから簡単等と言えるw
確かにドキュメントは無いが、あっても他人のコード読むのは大変だぞ。



429 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 15:47:00.47 ID:DE4BsnuO0.net]
>>423
引き継ぎって言葉分かってる?
それに、想像力があれば一番最初の段階で想定できるような話なんだがw

430 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 15:51:30.21 ID:DE4BsnuO0.net]
引き継ぎ 開発でクグったら最初の3つとも他社からの引き継ぎのことが書いてあったわw

開発会社じゃ当たり前のことなんだけどなw

431 名前:デフォルトの名無しさん (ドコグロ MM5b-h94e) mailto:sage [2020/04/18(土) 15:56:09 ID:MLXwdj/hM.net]
でもググったURL

432 名前:デフォルトの名無しさん (ドコグロ MM5b-h94e) mailto:sage [2020/04/18(土) 15:56:30 ID:MLXwdj/hM.net]
は出せないw

433 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 15:59:10 ID:DE4BsnuO0.net]
>>422
ああ、素人のコードを引き継いだとしたらの話か。
まあ、素人の短い簡単なコードならその通りだな。

まあ、>>394に書いた通り、形の上では開発会社らしき所のコードだし、コード量も多いからねえ。
VBAはそういうの多いんだよ。
形では仕事で受けてても素人のコードとか。

434 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 16:01:12.79 ID:DE4BsnuO0.net]
>>427
出しても構わんがw
マナー的に出してないだけでw

というか、お前もググって見てから言えよ。
事務員の上にググることさえ出来ないのかよw

435 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 16:21:35.89 ID:N9jsIxO7M.net]
出しても構わんけど出せない
うんうん、そうだろねw

436 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 16:40:22 ID:DE4BsnuO0.net]
>>431
ググれないバカに出してやろうwww

システムの保守ベンダー変更による引き継ぎ
https://www.lanscope.jp/tips/8797/

他社開発システム・アプリケーション保守引継ぎ
https://www.stylez.co.jp/apmt/

他社が開発したシステムを引き継ぎます
https://www.tpc.jp/%E4%BB%96%E7%A4%BE%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E5%BC%95%E5%8F%97/

他社が開発したシステムも開発を引き継ぎ保守します。
https://kusanagi.dht-jpn.co.jp/2019/04/yamahakusanagi/

他会社が受託開発したPHPのWEBシステムを引き継ぎ運用し、その後の改修対応などを行うことがあります。
https://qiita.com/xylitol45@github/items/271f2b8e5de3e62d0840

そのWebサイト・システムの保守引き継ぎます。
https://www.accent.co.jp/lp_hosyu/

437 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 16:46:17 ID:DE4BsnuO0.net]
>>423
な、お前のような素人だけだよw
客が依頼してた会社を変えて、引き受けたのを引き継ぎとは言わないのはwww

438 名前:デフォルトの名無しさん (ドコグロ MMdf-h94e) mailto:sage [2020/04/18(土) 17:45:11 ID:JSVuvQDyM.net]
必死にググったのは褒めてやるよw
でも、それ運用とか保守の話だろ
そりゃそう言うのは連続してるから引き継ぎって言うだろうけど、10年前の他社のコードの改修を引き継ぎとは言わんわな



439 名前:デフォルトの名無しさん mailto:sage [2020/04/18(土) 17:51:35.98 ID:HTrBhqa/0.net]
微妙にニュアンスがずれてる気がするけど
わざと?

440 名前:デフォルトの名無しさん (ワッチョイ 1702-nex3) mailto:sage [2020/04/18(土) 19:45:41 ID:SSjF6x8Y0.net]
他でやれ

441 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/18(土) 22:46:28 ID:DE4BsnuO0.net]
>>434
必死?
一発で出たぞwww

またボロが出る。
開発は作って終わりだと思っているのか?
普通は保守へと継続していくもんなんだが。
何も知らんのなw

442 名前:デフォルトの名無しさん (ワッチョイ ff8f-Ho7r) mailto:sage [2020/04/18(土) 22:51:16 ID:Yw55XdRL0.net]
>>410
ブラック・ショールズ式ってのが金融の世界にあるんだが、これをググって
初めて日本語の変数見て目が点になったw

443 名前:デフォルトの名無しさん (ワッチョイ 5701-7wDT) [2020/04/19(日) 05:44:09 ID:wxLF5u+B0.net]
質問していいのか?
グラフの近似式をセルにコピペするマクロだ。

444 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 06:21:55.35 ID:fnnke5O7M.net]
あらら、他社のコードの保守まで受託してるって話にするの?
そういうケースだと普通はドキュメントも貰ってるはずだけどろくなドキュメントがないって話かな
そんなハイリスキーな受託して>>325みたいな愚痴こぼしてるなら知能の足りない会社と言われてもしょうがないじゃん

まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す
でないと保守できないから
>>437は保守が何をするのかすらわかってなさそうw

445 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 06:29:22.92 ID:NooYP4/SM.net]
>>439
コピペは難しい、普通にセルに直接ぶち込め
って書かれてるぞ
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14139043119

446 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 08:34:09.85 ID:/XkpxjBrr.net]
近似式をテキストとしてセルに貼るとこまでできたが、そのテキストから係数を得る方法はないですか

447 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 08:38:32.44 ID:/XkpxjBrr.net]
近似式をセルに落とし、計算する作業が大量のあるためです

448 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 09:19:45.38 ID:BXvk/jUs0.net]
>>440
プw
引き継ぎって知らんの?
いい加減、恥を晒すだけだぞw
というか、VBA案件だけの話だと思ってる?
爆笑もんだw

1つの客から1つの案件だけのわけね―だろ。
寧ろVBAの開発はメインじゃね―ぞ。
DBにAccessなんて普通は無いんだ。
バックエンドとか知らんの?



449 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 09:25:23.89 ID:BXvk/jUs0.net]
>>440
あと、知らんのだろうけど、ドキュメント類についてはVBAの場合はそうならないことが多いんだよ。

今までいろんな案件で仕事したがドキュメント貰ったことなんて記憶に無いくらいだ。
で、ドキュメント作る時間も無いことも多い。

これはVBA案件の特殊性だろうな。
VBAが言語として糞呼ばわりされる原因の1つだろう。

450 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 09:40:28.30 ID:VbzAXKcO0.net]
もうウザイから消えろ

451 名前:デフォルトの名無しさん mailto:sage [2020/04/19(日) 09:44:05.10 ID:wN5KW3ZOM.net]
>>446
無理にこのスレに居なくてもいいんですよ

452 名前:デフォルトの名無しさん (ワッチョイ 1701-ycCE) mailto:sage [2020/04/19(日) 10:45:28 ID:Shwu+G580.net]
>>442
近似式a x + bからa とか bを切り出すってこと?
VBA使わずともエクセル関数で出来るでしょ
RIGHT、LEFT、MIDとか駆使しろ

453 名前:デフォルトの名無しさん (ドコグロ MMbf-h94e) mailto:sage [2020/04/19(日) 10:51:03 ID:ARSXQ48qM.net]
>>444-445
今度はAccessガーとか言い出したのか
まあ言い出すのがAccess止まりなのが物悲しいけどねw

ドキュメントも作らずに何を保守するつもりなんだよ
言われたらその場であたふた調べてやっつけ仕事でテキトーに改修するのか?
そう言うクズ会社なのはよくわかったよ

454 名前:デフォルトの名無しさん (アウアウエー Sadf-tHNm) mailto:sage [2020/04/19(日) 11:52:18 ID:olPCwpAZa.net]
自宅待機でストレス溜まってんだろなー

455 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/19(日) 12:04:09 ID:BXvk/jUs0.net]
>>449
バーカw
今度はじゃね―よw

ある特定の案件だけと考えるバカに教えてやってるだけ。
客からの要望はたくさんある。
VBAなんてたくさんある中のごく一部なのがむしろ普通。

ドキュメント作らずってw
それは最初に受けた会社に言えよwww
現実を知らないニートにゃ分からないんだろうなw

456 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/19(日) 12:05:45 ID:BXvk/jUs0.net]
日本語が通じないんだよな。
ドキュメント残してないのがコッチにされてる。

457 名前:デフォルトの名無しさん (ワッチョイ 1791-N0vN) mailto:sage [2020/04/19(日) 12:08:31 ID:BXvk/jUs0.net]
トヨタ並に名前が知られた客から提示されたのがプログラム本体だけで、それ以外何もありませんってことだって有るんだけどな。
結構昔の話だが。

458 名前:デフォルトの名無しさん (ドコグロ MMeb-h94e) mailto:sage [2020/04/19(日) 12:19:58 ID:FGXaOjnDM.net]
連投バカは日本語が理解できないらしい…
まあ無職の脳内妄想の限界かなw

> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す



459 名前:デフォルトの名無しさん (ワッチョイ 1701-xa8R) [2020/04/19(日) 22:09:40 ID:5r3nTnp70.net]
長文質問失礼いたします。

VBAを用いたAsc?コード129〜159、224〜252範囲の文字変換が上手くいきません。
環境:Windows10Pro excel2007 VB6.5

上記以外のアスキーコードでは、
?[Chrを用いた、Asc?コード→文字への変換] → ?[Ascを用いた、文字→Asc?コードへの変換]
の順序で2回変換すると最初と最後でコードが一致します。

しかし、129〜159、224〜252の範囲だと、
?変換では「・」、?変換では「-32443」が出力されます。(129〜159、224〜252の範囲ですべて同じ結果)

変換に適した別のコマンドがある、そもそもこのVerでは動作しない等、アドバイスをよろしくお願いいたします。
※大元の目的としては、オシロスコープから取り込んだ画像バイナリデータを画像データにするため、Asc?コード→文字への変換を行おうとしています。

460 名前:デフォルトの名無しさん (ワッチョイ bf2f-8Jcx) mailto:sage [2020/04/19(日) 22:31:33 ID:oozYSe6W0.net]
文字として表示って、その範囲をどんな文字で表示したいんだ?
画像バイナリデータを画像データって、普通画像データはバイナリなんだが

文字として表示しないならとりあえずAscBとChrB使えば一致するんじゃね

461 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/19(日) 22:31:47 ID:lQLRo24I0.net]
>>455
アスキーはAsc?じゃなくてAsciiな
あと、画像データはバイナリなのに、どうして文字に変換するのかもわからない

方法が間違ってないとして、どこかでデータが化けてる可能性があるけど、どこが悪いのかその文章だけではわからない
まずは変数の型をチェックかな

462 名前:デフォルトの名無しさん (ブーイモ MMcf-csEB) mailto:sage [2020/04/19(日) 22:58:29 ID:BbIK31/CM.net]
-32443は文字化けした時に表示される文字のコードだから、根本的にデータの受け渡し方法を間違えてる

463 名前:デフォルトの名無しさん (ワッチョイ 9fb5-5bTb) mailto:sage [2020/04/19(日) 23:08:35 ID:Dosl7noD0.net]
覚え初めてまだ三日だけどなかなかエクセル関数のように簡単にはいかんもんだね…
流石入門といえどプログラミング、敷居が高い
(A1:B1)から羅列されてる数字を(C1:D1)に
コピーしてABS関数で絶対数に変換
こんな事すらなかなか難しい

464 名前:デフォルトの名無しさん (ワッチョイ 57ad-LzhE) mailto:sage [2020/04/19(日) 23:11:40 ID:yAfHWdhM0.net]
VBAは覚えることが多いだけで
やってることは関数と大差ない

465 名前:デフォルトの名無しさん (ワッチョイ b77c-IHcq) mailto:sage [2020/04/19(日) 23:18:18 ID:xFnV3YLr0.net]
3日?勉強中とかいって1ヶ月近く経ってない?

466 名前:デフォルトの名無しさん (ワッチョイ 1701-xa8R) [2020/04/19(日) 23:20:42 ID:5r3nTnp70.net]
>>456 >>457
長文の返答失礼します。

>>文字として表示って、その範囲をどんな文字で表示したいんだ?
10進数数字をASCii文字に変換しようとしています。
(66→B 77→M)

>>画像バイナリデータを画像データって、普通画像データはバイナリなんだが
呼び方が不適切だったかもしれません
?画像データ:BM>・・・(Bitmapファイルをテキスト形式で表示したもの)
?画像バイナリデータ:66 77 62 150・・・(上記を10進数変更したもの。オシロスコープからはこの形式でデータを取り込んでいる)

>>あと、画像データはバイナリなのに、どうして文字に変換するのかもわからない
取り込んだ?データを?データ(文字列)に変更、
得られた文字列をファイルに入力し、拡張子を変更して画像ファイルを作成する目的です。

>>文字として表示しないならとりあえずAscBとChrB使えば一致するんじゃね
Chr、ChrB、ChrWでそれぞれ確認したところ、
・Chr
Chr→Asc変換前後で一部データ一致せず。正規データとは一部不一致あり。
・ChrB
ChrB→AscB変換前後で全データ一致。正規データとはほとんど不一致。
・ChrW
ChrW→AscW変換前後で全データ一致。正規データとは一部不一致あり(Chrと正規データの不一致位置と同じ位置)。
※オシロの外付けFDで取り込んだ画像データを正規データ呼んでいます。
※ChrとChrWでは129〜159、224〜252の範囲のデータのみが正規データと不一致だったが、ChrBでは確認した範囲ではすべてのデータが不一致

>>まずは変数の型をチェックかな
オシロスコープから取り込んだ?データは配列のByte型、Chrで文字列に変換した?データはString型です。

467 名前:デフォルトの名無しさん (ワッチョイ 9fb5-5bTb) mailto:sage [2020/04/19(日) 23:33:41 ID:Dosl7noD0.net]
>>461
やったというより訳も分からずここの人にただ完成させてもらっただけだから俺の本当のVBAの勉強はこれからという感じで
おかげで肩の荷が降りて基礎から学べる幸運な情況ですね
変数の宣言やデータ型は何となく理解して
こっから仕事で簡単に自分でやってけそうな関数をこなせるようにしていきたい

ここの列が空白になるまで指定の列に四捨五入した数値を貼り付け
とか絶対数を貼り付け
あとは数値のバラし
とか覚えていって自職場で簡単なVBAのテンプレート作って行けたらいいなと

468 名前:デフォルトの名無しさん (ワッチョイ 1701-xa8R) [2020/04/20(月) 00:04:39 ID:jmR48CvL0.net]
>>458
アドバイスありがとうございます。

大部分(129〜159、224〜252以外)の文字変換は問題なかったですが、今一度変換方法を再確認いたします。



469 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/20(月) 00:13:41 ID:01IV/2aE0.net]
>>462
もしかして、それって何も変換せずにそのままバイナリファイルに書き出せばいいのでは?
テキストファイルとバイナリファイルの違いは、出力方法はわかってる?

470 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 00:54:15.80 ID:3RmvNNii0.net]
>>462
だから例えば130や250という数値をどういう文字にしたいんだ?

>Bitmapファイルをテキスト形式で表示したもの
普通に言うビットマップファイルはバイナリだからテキスト形式で表示なんてできないが

というか、たんにいわゆる.BMPのファイル作りたいって話じゃないのか
お前がいってるBitmapファイルってどんなんだよ
なんにせよ出力したいデータフォーマットちゃんと確認しろ

471 名前:デフォルトの名無しさん (ワッチョイ ff8e-eUuY) [2020/04/20(月) 01:18:49 ID:ayPjQ7gM0.net]
なぜ次から次へと馬鹿が出てくるのか

472 名前:デフォルトの名無しさん (スプッッ Sddf-Ho7r) mailto:sage [2020/04/20(月) 01:59:49 ID:7tfcEhPrd.net]
>>467
外出を自粛したり自宅で仕事する人が増えたから
みんな体力とヒマを持て余してる

473 名前:デフォルトの名無しさん (スフッ Sdbf-Ho7r) mailto:sage [2020/04/20(月) 02:13:58 ID:ngLECqIpd.net]
>>462
Asc?とかASCiiとか、なんでいちいち気持ち悪い書き方をするのか
こんなん入力するのも面倒だろうに
正式には全部大文字でASCII、許容範囲で小文字ascii、賛否ありそうだけど頭だけ大文字Asciiもギリ許せる、どれかにしてくれ

1文字たりとも間違いを許さない厳密さがないとプログラミングは無理だぞ

474 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 02:14:21.83 ID:ngLECqIpd.net]
とにかく、説明がへたくそすぎて、何が悪いのかさっぱりわからん
動かない今のプログラムをここにそのまま書いてくれ
たぶんそれ見た方が早い
あとオシロスコープの機種名も

475 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 03:07:35.60 ID:HepRq5En0.net]
勉強しても仕事より辛い

476 名前:デフォルトの名無しさん (スフッ Sdbf-csEB) mailto:sage [2020/04/20(月) 03:16:22 ID:0LewM/0Ud.net]
たぶん、こうだな

Open "オシロ画面.bmp" For Binary Access Write As #1 'ファイル名を指定
Put #1, , 変数名 'バイト配列をそのまま全部出力
Close #1 '終了

477 名前:デフォルトの名無しさん (ワッチョイ 77da-Ho7r) mailto:sage [2020/04/20(月) 06:02:11 ID:1SCvgf4l0.net]
>>471
就職先間違えたんじゃね

478 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 09:42:05.89 ID:kpWyfGjqd.net]
>>454
日本語が理解出来て無いバカニートはお前だろw

>要望に答えるためには、今動いてるものも解析しないと答えられるわけが無い。
>そのコ一ドが何やってるかわからずに機能追加なんてできるわけが無い。

だから>>325で四苦八苦してるんだろ。
ついでに言うと、こっちはちゃんとドキュメント残してる。
でもな、VBAの場合で今まで見聞きした前任者、前任の会社は残して無いことが非常に多い。

開発やってればそういう話、よく聞く話なんだよ。



479 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 09:53:56.27 ID:k6bRrEuIM.net]
>>474
マジで日本語理解できないの?
時系列ってわかる?
それとも無職の妄想だから同じ話を繰り返すしかなくなったのか?w

> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す

できてないから今アタフタしてるだけだろ

480 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 10:02:13.61 ID:8H2k4fX/d.net]
>>475
???
出来てるから今、四苦八苦してるんだが。
解析に苦労してると書いてるだろうがw

481 名前:デフォルトの名無しさん (スップ Sd3f-N0vN) mailto:sage [2020/04/20(月) 10:04:53 ID:8H2k4fX/d.net]
ついでに言っとくと、正直に言えばたった今じゃねえ。
2週間程度前の話だ。
でも掲示板で、そんな説明することは無いだろ。
どーでも良い話だからな。

482 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 10:07:15.13 ID:8H2k4fX/d.net]
>>475
さらにいうと、お前の言うとおりなら、日本にはまともでない会社だらけになっちまうけどなw

483 名前:デフォルトの名無しさん (ドコグロ MM5b-h94e) mailto:sage [2020/04/20(月) 10:21:33 ID:RWBNH8g+M.net]
>>476-477
できてるって何が出来てるんだ?
どんどん話が壊れてるぞ

>>478
他社コードの保守はリスク高いから基本受けないし受けるとしたらそれ相応の対価を要求するなんて常識だぞ
言いなりになってそういうのを受けないと死んじゃうクズ会社なら愚痴ってないでまともに働けよw

484 名前:デフォルトの名無しさん (ブーイモ MMcf-9YMR) mailto:sage [2020/04/20(月) 10:51:40 ID:Smt4njnQM.net]
>>479
常識が通用しない現場なんていくらでもある
お前の経験値が足りないのはよくわかったから、あと15年ぐらい、もっと修羅場を経験してから出直してこい

485 名前:デフォルトの名無しさん (ドコグロ MMdf-h94e) mailto:sage [2020/04/20(月) 12:53:38 ID:zSz1bMm9M.net]
>>480
うん、常識の通じないクズ会社があることは知ってるよ
それが当たり前とか思ってるのが痛々しい
って話ねw

486 名前:デフォルトの名無しさん (アウアウエー Sadf-Ho7r) mailto:sage [2020/04/20(月) 13:20:10 ID:+VtGXs+Fa.net]
>>480
結果的に0から作るのと見積額が変わらなくなることも
0から作った方が見積もりが安いこともよくあるw

487 名前:デフォルトの名無しさん (ブーイモ MMcf-IW4T) [2020/04/20(月) 17:29:22 ID:LK5TIQvQM.net]
C5とD5の平方根をE5に入力する
これをC列が空白になるで行う

のシンプルなコード教えてくだせぇ

488 名前:デフォルトの名無しさん (ワッチョイ ff8e-eUuY) [2020/04/20(月) 17:33:09 ID:ayPjQ7gM0.net]
なぜ次から次へと馬鹿が来るのか



489 名前:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r) mailto:sage [2020/04/20(月) 17:47:32 ID:gp23hNl10.net]
>>483
Columns("C:C").ClearContents

490 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/20(月) 17:58:37 ID:01IV/2aE0.net]
>>483 意味不明
>>485 なるほど、うまいな

491 名前:デフォルトの名無しさん (ワッチョイ b77c-IHcq) mailto:sage [2020/04/20(月) 20:13:51 ID:Y6XPlQfH0.net]
まともに勉強してないだけだと思う

492 名前:デフォルトの名無しさん (ワッチョイ d7ac-RTks) mailto:sage [2020/04/20(月) 20:20:08 ID:xfj95GQN0.net]
sqr(sqrt)関数あるんだな

493 名前:デフォルトの名無しさん (ワッチョイ 5709-xa8R) mailto:sage [2020/04/20(月) 20:27:38 ID:326Vj6040.net]
皆様は、同一のブック内で複数のマクロがあり、それらの実行時に共通の処理を
させたいとき(実行しますか?の確認メッセなど)どういうコードを
書いておりますでしょうか。
私は開発→挿入→ボタン(フォームコントロール)にそれぞれマクロを登録して
実行させており、これらのボタンclick時に共通イベントを設定しようと
考えているのですが。非効率的でしょうか。

494 名前:デフォルトの名無しさん (ワッチョイ 5709-xa8R) mailto:sage [2020/04/20(月) 20:30:00 ID:326Vj6040.net]
補足です。現在は共通処理sub作って、マクロごとにそれをcallしておりますが、
そのブックで日々マクロが増加してきており、そのcall一行すら面倒になってきました・・・

495 名前:デフォルトの名無しさん (ワッチョイ b77c-IHcq) mailto:sage [2020/04/20(月) 20:37:06 ID:Y6XPlQfH0.net]
辞書登録でもしておくとか

496 名前:デフォルトの名無しさん (オッペケ Sr8b-uk89) mailto:sage [2020/04/20(月) 20:57:06 ID:+CR9zmner.net]
>>489
application.callerとselect caseかな

497 名前:デフォルトの名無しさん (ワッチョイ 5709-xa8R) mailto:sage [2020/04/20(月) 21:57:48 ID:326Vj6040.net]
>>492
おお、vba実行時に処理できるメソッドがあったんですね!
自分の勉強不足でした、大変助かりました。使わせていただきます。

498 名前:デフォルトの名無しさん mailto:sage [2020/04/20(月) 23:00:14.60 ID:mqB9NHYzM.net]
Sub 関数SQRT練習() 'B2とC2の0に対してのズレ量でD2で位置度を求めこれを16行までやる。

Dim SQRT練習 As String
Dim Gyo As Long
Dim Ans As Double
Sqroot = ("SQRT練習")
Sheets(Sqroot).Select
For Gyo = 2 To 16
Cells(Gyo, 4) = Sqr(Cells(Gyo, 2), Cells(Gyo, 3)) * 2
Next
End Sub





499 名前:外ですか?もちろんピコンピコンエラーまくりです。
B1とC1がもしそれぞれ1なら2.828
それぞれ2なら5.657と
なってほしいのですがお手上げです
[]
[ここ壊れてます]

500 名前:デフォルトの名無しさん (ワッチョイ ff8e-eUuY) [2020/04/21(火) 00:41:08 ID:XAeWC18v0.net]
なぜ次から次へと馬鹿が湧くのか

501 名前:デフォルトの名無しさん (ワッチョイ b7e6-R0o5) [2020/04/21(火) 01:54:12 ID:FdhLTsrP0.net]
まさか足し算すら出来ないとは夢にも思わないじゃん

502 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 04:14:58.32 ID:uRz5dWGWa.net]
sqrt(4) って 2だよね

503 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 04:17:02.05 ID:uRz5dWGWa.net]
vbaではsqrか

504 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 08:23:54.51 ID:1TfDEjo0d.net]
>>479
あ〜あ。
素人丸わかりw
SEとか、技術者の勉強してるニートかなw

できてるってのは解析する時間もドキュメント残す時間も貰ってるということ。
ということは=それにかかる費用も貰ってるということだよ。
こんなことも理解出来ないのか?

VBAの案件ってのは残念ながら能力の低い奴がやることも多く、常識が通じないことが多い。
なにしろ時給2000円とかでやってる奴も結構いるくらいだ。
俺の場合は時給換算じゃね―けど時給になおしたら最低でも1.5倍は貰わないとやってられねえ。

505 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 08:50:35.54 ID:sDUb3bhdM.net]
>>499
> できてるってのは解析する時間もドキュメント残す時間も貰ってるということ。
> ということは=それにかかる費用も貰ってるということだよ。

> 今、他人のそういうコードで四苦八苦してる。

> こんなことも理解出来ないのか?
で、何を理解しろって?
お前の頓珍漢さか?

あと3,000円/hってドヤるほど高くないぞw

506 名前:デフォルトの名無しさん (ワッチョイ 77da-Ho7r) mailto:sage [2020/04/21(火) 10:52:51 ID:mWboXDgG0.net]
excelの事務処理で時給3000円は高くね?

507 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 11:40:05.07 ID:Jp/GQMh30.net]
何が分からんのか分からんから、とりあえず値2つの合計の平方根を求めるやつをかいた
シート
https://imgur.com/8uy5ETZ

Sub main1()
Dim StartRow As Long, EndRow As Long ' 処理開始行,処理最終行
Dim r As Long ' カウンタ
Dim FirstValue As Long, SecondValue As Long, SumOfValue As Long ' 値1,値2,値の合計
Dim ValueOfSquareRoot As Double ' 値の合計の平方根

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("SQRT練習")

StartRow = 2
EndRow = 6

' 指定行のみ計算。逐一セルに代入する。計算ステップは細かくしている。虚数となる場合は一律-1をセルに代入。
With ws
For r = StartRow To EndRow
FirstValue = .Cells(r, 2).Value
SecondValue = .Cells(r, 3).Value
SumOfValue = FirstValue + SecondValue
If SumOfValue > 0 Then
ValueOfSquareRoot = Sqr(SumOfValue)
Else
ValueOfSquareRoot = -1
End If
.Cells(r, 4).Value = ValueOfSquareRoot
Next
End With

End Sub

508 名前:502 mailto:sage [2020/04/21(火) 11:42:34.25 ID:Jp/GQMh30.net]
ちょっとだけ汎用的にも書いた
こっちはベテランの叩き台にしてほしい

長いしあんまり突っ込まれると恥ずかしいから画像
https://imgur.com/4pE5uE6



509 名前:デフォルトの名無しさん (スップ Sd3f-8lzQ) mailto:sage [2020/04/21(火) 12:31:16 ID:1TfDEjo0d.net]
>>500
日本語がまともに出来ないアホには理解出来ないからお前には無理w
何を理解しろって、別にお前に対して理解しろなんて言ってないぞ。
理解出来ないアホさ加減を嗤ってるだけだw

アホだから3,000円/hに突っ込むと思ったwww
最低でもと書いてるんだが。
そもそも、そこに突っ込むんじゃ無くて2000円/hに突っ込め。
そういう所はドキュメント無しで終わってもしようが無い。

510 名前:デフォルトの名無しさん (スップ Sd3f-8lzQ) mailto:sage [2020/04/21(火) 12:40:09 ID:1TfDEjo0d.net]
>>501
派遣の場合は高い部類に入るだろうね。
力量があって派遣じゃなければVBAでも余裕で超える。
ExcelVBAでのセルとかシート操作の話では無くなるけど。

511 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 12:52:51.59 ID:ADUc7MNZM.net]
>>504
> 日本語がまともに出来ないアホには理解出来ないからお前には無理w
結局説明できなくなって理解力ガーとか低能が逃げる時によくやる手で笑うわ

まあどう言い逃れしようとしても
> 今、他人のそういうコードで四苦八苦してる。
って書いたのに突っ込まれたら何か知らんけどできてると言っちゃったアホがいた事実は消せないよw

512 名前:デフォルトの名無しさん (ドコグロ MM5b-Wm+M) mailto:sage [2020/04/21(火) 12:57:31 ID:zuguU9RsM.net]
>>501, >>505
派遣で事務処理なら高いほうだと思うぞ
まあ大前春子みたいな奴は知らんけどw
ただ、>>499は
> 俺の場合は時給換算じゃね―けど
とか言ってるから正社員なんだろ
ならわざわざドヤる程の額じゃねーよ
ってこと

513 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 14:56:45.54 ID:PwHPaaVD0.net]
>>494
「ズレ量」「位置度」の意味がわからん
図を書いて、「ここがズレ量」とか専門用語を使わずに説明してくれ

514 名前:デフォルトの名無しさん (ワッチョイ ffcc-Ho7r) mailto:sage [2020/04/21(火) 15:08:54 ID:VOMv0cPL0.net]
>>494
たぶん
× Cells(Gyo, 4) = Sqr(Cells(Gyo, 2), Cells(Gyo, 3)) * 2
○ Cells(Gyo, 4) = Sqr(Cells(Gyo, 2)^2 + Cells(Gyo, 3)^2) * 2

515 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 20:34:28.31 ID:1TfDEjo0d.net]
>>506
日本語、本当に分からないの?

四苦八苦してたのはその通りだが。
お前は、時間とお金を貰えば穴掘って埋めるだけの仕事でも喜んでやりそうだな。

516 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 20:37:32.58 ID:1TfDEjo0d.net]
>>507
正社員www
あの書き方で正社員だと思うかね。

>>505と併せて考えれば普通にフリーと分かりそうなもんだが。

517 名前:デフォルトの名無しさん (ドコグロ MMeb-Wm+M) mailto:sage [2020/04/21(火) 20:56:47 ID:PQUXM5VQM.net]
>>510
で、何ができたんだ?
説明できないから穴掘りとかではぐらかそうとしてるのバレバレだよw

>>511
えっ、フリーだと激安だろw
なんでそんなの書いたんだ?

518 名前:デフォルトの名無しさん mailto:sage [2020/04/21(火) 22:37:42.12 ID:9g8Dif430.net]
ブックをコピーするボタンを設置したくて

単純に
ActiveSheet.copy
msgbox "コピー完了"

にしてあるのですが
シートが6つある中で特定の2つのシートでそのボタンを選択すると

このシートはコピー不可 みたいなダイアログだしてコピーをしない
その他の4つのシートでは選択すると今まで通りにコピー
みたいな設定って可能でしょうか
すみません。



519 名前:デフォルトの名無しさん (スップ Sd3f-D5eO) mailto:sage [2020/04/21(火) 22:59:56 ID:bkj7Ha2sd.net]
よろしくお願いします

AというブックのA1セルの値を
BというブックのリストというシートのA1からA500までで検索をし、
一致した値がある場合は同列のC〜F行の値を取得し
元のAブックのC1〜F1に貼り付けるVBAを
ご教授ください

520 名前:デフォルトの名無しさん (ワッチョイ bf02-rm8A) mailto:sage [2020/04/21(火) 23:03:12 ID:HzeK5leR0.net]
今どこまで出来てるのかソース貼って
それと1個見つかったら2個以上あっても処理終了?

521 名前:デフォルトの名無しさん (オッペケ Sr8b-uk89) mailto:sage [2020/04/21(火) 23:26:39 ID:RBZ7Rq7nr.net]
>>513
activesheet.nameでシート名取得し条件分岐
またはボタンを消す

522 名前:デフォルトの名無しさん (ワッチョイ 77ce-Ho7r) mailto:sage [2020/04/21(火) 23:30:41 ID:PwHPaaVD0.net]
>>513
s = ActiveSheet.Name
Select Case s
  Case "Sheet3", "Sheet6" ' コピーできないシート名を並べる
    MsgBox "コピー不可"
  Case Else
    ActiveSheet.Copy
    MsgBox "コピー完了"
End Select

523 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 00:16:20.28 ID:G7FFveIV0.net]
>>513
そのシートのボタン消せばいいんじゃないのか

524 名前:デフォルトの名無しさん (ワッチョイ 7ab5-l81y) mailto:sage [2020/04/22(水) 01:31:05 ID:6f1TA8hd0.net]
>>517
出来ました。本当にありがとうございます。

525 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 01:41:45.18 ID:tj5eX5rX0.net]
いえいえ

526 名前:デフォルトの名無しさん (ワッチョイ 0791-N0F4) mailto:sage [2020/04/22(水) 11:01:53 ID:TBrfp0e60.net]
>>512
本当に分かってないとはw

調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
お前はバカだから金と時間そ貰えればただ穴を掘って、その場でその穴を埋めるだけの仕事やらされても喜ぶかもしれんが、金や時間貰っても糞コ一ド読まされるのは普通の奴にゃ苦痛なんだよ。

527 名前:デフォルトの名無しさん (ワッチョイ 0791-N0F4) mailto:sage [2020/04/22(水) 11:03:37 ID:TBrfp0e60.net]
>>512
フリーだと激安だってwww
本当に何も分かって無いんだな。
VBAの場合は月70万も行けば良い方だ。

528 名前:デフォルトの名無しさん (ドコグロ MMa8-f1XF) mailto:sage [2020/04/22(水) 11:40:39 ID:yd/WL25UM.net]
>>521
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
ゴメンな、糞会社はそうなんだろうなw

>> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す

まあ、そもそもまともな会社は
>>522
>> 日本語の理解力がないのかな?
>> 自慢にもならないことをいちいち書くとかバカじゃね?

まさかと思うけど3,000円/h相当の俺スゲーとか思ってる?w



529 名前:デフォルトの名無しさん (ドコグロ MM85-f1XF) mailto:sage [2020/04/22(水) 11:48:33 ID:JonPflQBM.net]
すまん途中で送信しちまった

>>521
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
ゴメンな、糞会社はそうなんだろね
お疲れ様

>> まともな会社なら受ける時に調査費用と時間をもらってドキュメントを起こし直す

まあ、そもそもまともな会社は他社の糞コードの保守なんて滅多に受けないし

で、何ができたんだ?
>>510では過去形だけど>>325では今まさにやってることになってるけど、偶然この一週間で終わったのかな?
ますます辻褄合わせが大変になってるぞw

>>522
>> 日本語の理解力がないのかな?
>> 自慢にもならないことをいちいち書くとかバカじゃね?

まさかと思うけど3,000円/h相当の俺スゲーとか思ってる?

530 名前:デフォルトの名無しさん (ワッチョイ 6cac-xf6K) mailto:sage [2020/04/22(水) 12:11:09 ID:tj5eX5rX0.net]
こういうのってこうやって段々長文になっていくよなw

531 名前:デフォルトの名無しさん (ブーイモ MMfd-1Gce) mailto:sage [2020/04/22(水) 12:39:44 ID:rSQQIqcfM.net]
客は選べない
クソな仕事でも黙々とこなすやつが結局は上に上がってく
文句ばっかり言うやつはそこまでの人間

532 名前:デフォルトの名無しさん (ワッチョイ 0791-N0F4) mailto:sage [2020/04/22(水) 12:42:08 ID:TBrfp0e60.net]
>>523
プw
他人の書いたプログラム見たことすら無いとはw

まともに開発に絡んだことがあれば100人が100人他人のコードなんて読みたく無いんだよ。

引き継ぎという言葉も知らない、ググることも出来ない、保守という仕事が何をやるかも分からない。
二―トが背伸びは恥の元だぞ。

533 名前:デフォルトの名無しさん (ワッチョイ 0791-N0F4) mailto:sage [2020/04/22(水) 12:44:28 ID:TBrfp0e60.net]
3000円/hが自慢?
何を言ってるんだ?
3000円/hは最低限の話だが。

アホだからそこに反応する。
2000円/hが主題だと言ってるだろうに。

534 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 12:47:10.01 ID:TBrfp0e60.net]
>>526
客は選べない。
クソな仕事でも黙々とこなすやつが結局は上に上がってく
文句は客のいない所で発散する。

当然だがね。

535 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 12:51:44.35 ID:M+DGBLrr0.net]
暇なのはわかるけど
何日ひっぱるつもりなん

536 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 12:58:15.17 ID:4ePZRvo/M.net]
たびたび済みません
元のVBAのフォーマットから
新しいブックをコピーを教えて頂いたのですが
コピーする度に1回目にコピーしたブック内のシートの右に足されていく みたいな設定は可能ですか?


具体的に言うと4月分をコピー
その次に5月分、6月分とコピーすると
初回(4月分)にコピーしたブックのシート右に足されていく

さらに欲張ると元のフォーマットで4月とか5月とか特定のセルに入力した文字がそのままシート名になってくれる

すみませんがやり方ありましたら御教授を宜しくお願いします。

537 名前:デフォルトの名無しさん (ドコグロ MMa8-f1XF) mailto:sage [2020/04/22(水) 13:20:05 ID:RF8jAbo1M.net]
>>527-529
指摘されて顔真っ赤になって3連投とかw

> 3000円/hは最低限の話だが。
自ら最低限を認めるとか偉いやん
で、なんでそんな恥ずかしい金額をいきなり出してきたんだ?w

538 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 14:11:10.05 ID:PH7WDass0.net]
>>514
例えばA!A1にリンゴっていれると単価だか購入数だかをB!から拾ってきてA!C1〜F1に入れる感じの物?

多分VBAというよりエクセル関数VLOOKUPで済む話かと
VLOOKUP(A!A1, B!A:F, 3)



539 名前:デフォルトの名無しさん (ワッチョイ 0101-g4zf) mailto:sage [2020/04/22(水) 14:31:43 ID:YnJWUcMz0.net]
社内システムで書類となったものの特定の場所の値とエクセルの上の特定の場所の値が合っているか照合したいです。

そういったマクロ組む場合
1. 書類をスキャナーでpdfにする。
2. pdfをocr機能使って照合に使うシートとは違うシートにデータ転記。
3. 2.でデータ転記したシートの値と確認元のシートの値を照合する。

というのがぼんやり浮かんでるんですが、1-3までの流れでよりスマートな方法があるなら上の流れをどう変えたらいいか教えていただけませんか?
よろしくお願いいたします。

540 名前:デフォルトの名無しさん (ラクッペペ MM34-eHaU) [2020/04/22(水) 14:47:15 ID:lF2YSEgcM.net]
マクロで何とかなるスキャナーやOCRならいいんじゃないの?

541 名前:デフォルトの名無しさん (ワッチョイ 0791-N0F4) mailto:sage [2020/04/22(水) 15:04:32 ID:TBrfp0e60.net]
>>532
日本語、ダメ過ぎwww
ここまで壊滅的に日本語出来ない奴は仕事も出来ないからニートになるw

"引き継ぎ"で恥かいたからってむきになるなよw

542 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 15:26:26.42 ID:7QCXjzFAM.net]
今度はニートとか言い出したぞw
恥ずかしい奴

>> 結局説明できなくなって理解力ガーとか低能が逃げる時によくやる手で笑うわ

543 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 17:33:29.11 ID:jDnlGnaS0.net]
>>534
OCR読み取りまでできるなら転記とかいらんけど
社内システムに、その数字をシステム的に参照できるAPIを準備してもらえよ

544 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 17:47:01.75 ID:YnJWUcMz0.net]
>>535-538
csvファイル関連のapiもかなり時間かかったので開発をつついてみます。
ocr使ってデータ転記しないと私の能力と使えるソフトやapiでは座標指定ができないから回りくどいやり方するつもりです。
今のところGoogleクラウドのocrがapi公開してるからそれにしようかなとぼんやり思ってるとこです。
アドバイスありがとうございました。

545 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/22(水) 18:42:39 ID:TBrfp0e60.net]
>>537
最低限ってのは俺が受けるとしたら最低限3000円/hは貰わないと受けないという話。

こんなの分からないのお前以外いない。
これまでのやり取りも酷いし、"引き継ぎ"についても分からない。
致命的だよ。

546 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/22(水) 18:50:25 ID:TBrfp0e60.net]
>>537
あと、その変な引用とアンカ―どうにかならんのか?

547 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 19:58:37.32 ID:UdDG4RF8M.net]
>>540
> 最低限ってのは俺が受けるとしたら最低限3000円/hは貰わないと受けないという話。
まじで言ってるのか?
勤め人ならそれでいいけどフリーだと税金や年金とかも自己負担だからやり始めた時ならともかく普通は5,000円/hでも不安だよ

> これまでのやり取りも酷いし、"引き継ぎ"についても分からない。
そういう御託は…

で、何ができたんだ?
>>510では過去形だけど>>325では今まさにやってることになってるけど、偶然この一週間で終わったのかな?

にまともなレスできるようになってからほざけよw

>>541
どこにアンカーがあるんだよw
あと>>の意味もわからんとか馬鹿すぎる

548 名前:デフォルトの名無しさん (ワッチョイ d4da-1Gce) mailto:sage [2020/04/22(水) 20:13:28 ID:bDGlwx+F0.net]
おまえら能ある鷹は爪を隠すってことわざ知っているか?



549 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/22(水) 20:18:29 ID:Al75grru0.net]
ここは質問スレ
ルールを守らないやつには誰も仕事なんか頼まない

550 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 22:05:00.09 ID:M+DGBLrr0.net]
爪出してないしとか言いそう

551 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 22:35:47.35 ID:86ULQnrYa.net]
そもそも爪がない

552 名前:デフォルトの名無しさん mailto:sage [2020/04/22(水) 23:56:54.01 ID:ioC/S0KO0.net]
CSVはComma Separated Valueの略ですが、
Commaはわざわざ略さなくても、既に,があるんだから、そのまま,SVでいいと思うんですよ。

553 名前:デフォルトの名無しさん (ワッチョイ 7cda-1Gce) mailto:sage [2020/04/23(Thu) 00:04:13 ID:WrYMug8t0.net]
で、VBAの質問なんですが、何にもないプロシージャって、何か使い道はありますか?
普通は全然意味ないと思うんですが、なんていうか0番スプライト的な感じで。

Sub Test()
End Sub

554 名前:デフォルトの名無しさん (ワッチョイ 91ad-R0M4) mailto:sage [2020/04/23(Thu) 00:22:20 ID:IA7mxVD60.net]
>>547
TXT,,SVより
TXT,CSVの方が誤読しにくい

555 名前:デフォルトの名無しさん (ワッチョイ 7c7c-sVZV) mailto:sage [2020/04/23(Thu) 00:30:31 ID:/DzsyJb70.net]
誤読とか以前にわかりにくすぎるわ
一体何がいいのか

556 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 01:00:46.60 ID:tvgCM2UH0.net]
今さらcsvの命名にケチつけるなんて、極論が好きな反抗期なんだろ

中身のないプロシージャの意味とか、それ質問する理由も書かないしな

557 名前:デフォルトの名無しさん (アウアウウー Saab-AGUX) mailto:sage [2020/04/23(Thu) 02:10:50 ID:q29uZhI+a.net]
>>548
あるかないかならある

558 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 02:29:45.14 ID:4BIs3zJP0.net]
>>542
バーカw
VBAで5000/hの仕事なんてあるわけ無いだろw
ニートはこれだからw

御託?
お前が"引き継ぎ"という言葉の使い方について反論出来なくなっているわけだがw
反論あるならどうぞw

>>510での過去形について、分からんのか?
レスもまともに読めないのか。
>>477を読めw

引用に>>使うアホはいない。



559 名前:デフォルトの名無しさん (スップ Sd9e-Op/G) mailto:sage [2020/04/23(Thu) 03:04:53 ID:Yau2aIj5d.net]
木曜日にワッチョイが切り替わるんだよなあ
めんどくせえ

560 名前:デフォルトの名無しさん (ドコグロ MM46-f1XF) mailto:sage [2020/04/23(Thu) 05:14:45 ID:Bp33q84zM.net]
> 今、他人のそういうコードで四苦八苦してる。

> ついでに言っとくと、正直に言えばたった今じゃねえ。
> 2週間程度前の話だ。

なんだそのバレバレな言い訳はw
流石に恥ずかしくないのか?

そもそもそれが本当だったとしても>>476の
> 出来てるから今、四苦八苦してるんだが。
が意味不明なのは変わらんし
何ができて、何に四苦八苦してるのか書いてみ

> 引用に>>使うアホはいない。
まじでわかってないのかよ…
自分自身への引用を明示してるだけだぞ
馬鹿すぎるわ

561 名前:デフォルトの名無しさん (オッペケ Sr39-xf6K) mailto:sage [2020/04/23(Thu) 08:02:32 ID:WPkfNDtBr.net]
VBA質問スレで必死になるのはちょっと恥ずかしいよなあw

562 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 09:42:16.36 ID:4BIs3zJP0.net]
>>555
日本語勉強しろw

言い訳?
何を言ってる?
何の言い訳だよw
四苦八苦してる(た)ことに何も変わりはないぞ。
これのどこが言い訳になるんだ?

2週間前に四苦八苦してたとしても、こういう掲示板で発言する時は今四苦八苦してると発言することは十分あり得ると>>477で言ってる。
発言の主旨が変わらないからな。
そして、それがお前に何か指摘されたとか、自己弁護の為に言っているわけじゃないことは時系列から明白。

言い訳?

563 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 09:51:26 ID:4BIs3zJP0.net]
>>555
解析する時間もドキュメント作成する時間も費用も貰っているが他人のコード解析するのに四苦八苦してるんだがね。
これのどこが変なのかさっぱり分からん。

何ができて何に四苦八苦してるかの前に、お前は俺が何が出来てないと思ってるのか言えよ。

今までの話じゃ、お前の主張は解析する時間、ドキュメント作成する時間や費用を貰うと四苦八苦することが無くなるということのようだが、そんなこたあねえぞ。

564 名前:デフォルトの名無しさん (ドコグロ MMa8-f1XF) mailto:sage [2020/04/23(Thu) 09:51:33 ID:dNGhRpxuM.net]
>>557
「何ができて」の説明が一切なくて失笑

565 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 09:52:35 ID:4BIs3zJP0.net]
自分自身への引用でも>>なんて使わん。
>で十分だし、普通。

566 名前:デフォルトの名無しさん (ドコグロ MM46-f1XF) mailto:sage [2020/04/23(Thu) 09:55:24 ID:TqAmz8xEM.net]
>>558
ドキュメント作成してるのに四苦八苦してるなら役に立たないドキュメントを作ったお前がアホなだけだけど?

あと、せめてレスを1つにまとめろよ
なぜかバカは同じ内容に複数レスで返すんだよな
まあ低能にまとめる能力を期待しても無駄かなw

567 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 09:55:54 ID:4BIs3zJP0.net]
>>559
バーカw
先にお前が、俺の何が出来ていないと思ってるのか説明しろ。
お前が俺の話のどこが理解出来て無いのかはこっちにゃ分からんのだよ。

568 名前:デフォルトの名無しさん (ドコグロ MM36-f1XF) mailto:sage [2020/04/23(Thu) 09:56:33 ID:6OPJP51MM.net]
>>560
自身のレスとお前のアホレスを混同されたくないだけw



569 名前:デフォルトの名無しさん (ワッチョイ 4642-PxOI) mailto:sage [2020/04/23(Thu) 09:57:01 ID:BmbwEUgo0.net]
いつまで続くんだコレ

570 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 09:57:12 ID:4BIs3zJP0.net]
>>561
バカ?
本当にバカ?

解析してドキュメント作るんだよ。
解析に四苦八苦してるんだぞ。

嗤えるわw

571 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 09:58:37 ID:4BIs3zJP0.net]
>>563
そんなもんは内容でわかる。
というか、むしろ邪魔で分かりにくいから>>541で指摘してるんだが。

572 名前:デフォルトの名無しさん (ドコグロ MM40-f1XF) mailto:sage [2020/04/23(Thu) 10:00:29 ID:80sunLmwM.net]
>>562
アホなの?
>>476の「できてるから」の説明しろって話
自分で書いたことも理解してないのかよw

573 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 10:03:00 ID:4BIs3zJP0.net]
>>567
だから、金と時間を貰ってるというのが出来てると言ってる。

やり取り理解出来てる?
お前の指摘はまともな会社なら金と時間を貰ってるというものだった筈だが。

574 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 10:09:52 ID:4BIs3zJP0.net]
最低限、やり取りから解析に四苦八苦してるというのはまともな奴なら分かる筈なんだが。
とすれば、お前の言う金と時間を貰って、今まさにドキュメント起こす為の解析中(だった)なのが分かる筈。

これが前提なんだからドキュメントが既に出来上がってるなんてアホな誤解してたことは無いと信じたい。

575 名前:デフォルトの名無しさん (オッペケ Srea-xf6K) mailto:sage [2020/04/23(Thu) 10:18:34 ID:pyQ+IxFJr.net]
関係ない人はこいつらをNGにすればいいで

576 名前:デフォルトの名無しさん (アウアウエー Sa6a-BE4G) mailto:sage [2020/04/23(Thu) 10:24:08 ID:EgVweMy+a.net]
まだやってるのか
完全に自粛ストレスだろうな

577 名前:デフォルトの名無しさん (ドコグロ MM46-f1XF) mailto:sage [2020/04/23(Thu) 10:29:06 ID:TPtGWxWfM.net]
>>566
専ブラで引用の引用したことないのか?
まあその手の文句は専ブラの作者に言ってくれ

>>568-569
> だから、金と時間を貰ってるというのが出来てると言ってる。
あれ?
> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
って糞ドキュメントしか作成できないアホって自白してますけど?
発注した客可哀想
まあ脳内だろうから問題ないか…

> やり取り理解出来てる?
うん、どんどんボロが出てるねw

578 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 11:08:06 ID:4BIs3zJP0.net]
>>572
???
ドキュメント作るための解析に四苦八苦してるのと、出来たドキュメントの出来に何の関係が?

お前がドキュメント作ったこと無いのがこれでバレたw



579 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 11:11:09 ID:4BIs3zJP0.net]
何か、お金と時間貰うとロボットが勝手に解析してドキュメント作ってくれると思ってるアホがいるようだ。

580 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 11:14:19.21 ID:4BIs3zJP0.net]
というか、解析に苦労しないんだったら、糞コードなんて言葉は無い筈なんだ。
どんなコードでも誰にでも理解出来て楽に読めるんだったら、綺麗なコードを心がけるというモチベーションすら起こらない。

581 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 11:21:51 ID:4BIs3zJP0.net]
>>572
あと自白っていうのがこれまたおかしい。
最初の主張通り、何ら矛盾が無いんだから自白じゃ無いだろ。
それとも、まだ理解出来て無い?

582 名前:デフォルトの名無しさん (ドコグロ MM40-f1XF) mailto:sage [2020/04/23(Thu) 11:24:06 ID:5d1aUYQtM.net]
>>573-574
え゛っ、まじでドキュメント作成で四苦八苦してるって事で誤魔化せるとか思ってるの?

> 調査費用と時間貰ってドキュメント起こすことになっても四苦八苦は変わらん。
そうすると何が何と変わらんのか説明できないだろw

583 名前:デフォルトの名無しさん (ドコグロ MM02-f1XF) mailto:sage [2020/04/23(Thu) 11:25:47 ID:RuZIZsvvM.net]
>>575-576
レスをまとめることもできない無能
しかも内容スカスカw

584 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 11:32:54 ID:4BIs3zJP0.net]
>>577
えっ?
何度も言ってるのにまだ分からない?

「解析に四苦八苦するのは、時間とお金を貰っても変わらない」という日本語が分からない?

時間と金を貰って無くても、貰ってても、どっちでも四苦八苦はするという意味が理解出来て無かった?

日本人ですか?

585 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/23(Thu) 11:35:35 ID:4BIs3zJP0.net]
日本語が通用しない程だから始末に負えない。
"引き継ぎ"も碌に理解してないぐらいだからな。

586 名前:デフォルトの名無しさん [2020/04/23(木) 12:11:20.51 ID:NJImmJ6MM.net]
>>564
これから2週間が山場

587 名前:デフォルトの名無しさん (ワッチョイ 7349-xf6K) mailto:sage [2020/04/23(Thu) 13:25:04 ID:UY53iXGX0.net]
うまい

588 名前:デフォルトの名無しさん (ブーイモ MM5e-l81y) mailto:sage [2020/04/23(Thu) 18:35:48 ID:9EduGPIyM.net]
レベルの高すぎる人同士での口論はとてももったいない
俺はIf Then ElseとFor nextは辛うじて理解できそうなレベル

Do untillとかNextとかloopとか使いこなしたい条件が山ほどあって泣きそうだけど
ここの上級者たちは独学で覚えた?
同じ事やろうと調べでもどのサイトもいろんなやり方でどれが良いかも分からない

ここで聞くとさらりと答えだしてくれる人ってどういう頭の良さしてんだろ



589 名前:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+) mailto:sage [2020/04/23(Thu) 18:56:32 ID:9prkr8SY0.net]
基本的には場数
よい文章を書くには良い文章をたくさん読め
良いプログラムを書くためには良いプログラムをたくさん読めば良いんだが
まあ、よいプログラムをたくさん提供してくれる場がなぁ

590 名前:デフォルトの名無しさん (ブーイモ MMed-l81y) mailto:sage [2020/04/23(Thu) 19:20:59 ID:R7RBEdEaM.net]
>>584
ここ見てけばまぁ覚えやすいとか無難で間違いないとかそういったサイトありますか?
広告たくさんのサイトだろうが藁にもすがりたいほど身につけたくて…ノイローゼ気味

俺の業務に絞った時にVBAで何でもやらせようと無理せずに関数はエクセルである程度制御した方が後々メンテが楽なのがわかったので

恐らくloopの使い方を理解しないと絶対に乗り越えられない大きな壁が。。
それを作れたら後は数値の変更や応用でいけそうだけど脳が焼き付いてる

591 名前:デフォルトの名無しさん (スップ Sd9e-Op/G) mailto:sage [2020/04/23(Thu) 20:03:22 ID:6e93QXlJd.net]
>>583
本当にレベルが高い人は口論なんかしないんだよ
スレを荒らすのはだいたい無職

592 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/23(Thu) 20:05:39 ID:weP1rIDx0.net]
>>585
まずはここにあるサンプルを、コピペせずに自分でキーボードから入力してみ
excelvba.pc-users.net/fol6/6_4.html

593 名前:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+) mailto:sage [2020/04/23(Thu) 20:07:24 ID:9prkr8SY0.net]
>>585
本買え
初心者むけのをまず数冊

昔はプログラム系の雑誌結構あったんだがなぁ

594 名前:デフォルトの名無しさん (ワッチョイ 91ad-R0M4) mailto:sage [2020/04/23(Thu) 20:16:07 ID:IA7mxVD60.net]
>>583
VBAの本って多いから学習しやすいはず

プログラマなら他言語の経験から
基本的な制御構文くらいは自然と分かる
VBAはプログラム言語としてはやさしい方

595 名前:デフォルトの名無しさん (アウアウエー Sa6a-e618) mailto:sage [2020/04/23(Thu) 21:01:06 ID:72/Ynz/da.net]
まずは何をしたいか、エクセルでこんな便利なのを作りたいとか、ヴィジョンをもてれば上達は早いと思う

596 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 21:28:22.57 ID:IA7mxVD60.net]
そうだね

エクセルは小物ツール作りやすいから
実益を兼ねた練習を積めば上達するな

597 名前:デフォルトの名無しさん mailto:sage [2020/04/23(木) 22:53:32.79 ID:nGyVitY00.net]
VBAなんて本腰入れてテキストで勉強するにはコスパ悪すぎる言語だと思うが・・・
「VBA」にやりたいことを付けてググったソースをコピペした方が早くないか?

598 名前:デフォルトの名無しさん (スプッッ Sd7e-1Gce) mailto:sage [2020/04/23(Thu) 23:13:30 ID:/AKn5LJ4d.net]
本を見てプログラミングを勉強する時代は終わりだと思ってる
紙の方が読みやすいと思う人が多いだろうけど、本格的にやろうとしたらオンラインのドキュメントは必須だし、
画面上で文字を読む訓練をして慣れていかないと、いつまでも能率が上がらない



599 名前:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+) mailto:sage [2020/04/24(金) 00:05:26 ID:4FfGWszI0.net]
>>592
とりあえず動くものが作れればいいというなら、まあそうだな

>>593
学習リソースとしては、本かWEBかに本質的な差はないと思うが
中身の問題で、WEBは本ほど系統立てて編集されていないところが多いと思う

辞書だけで外国語マスターできるような人ならWEBだけでもいいけどな

600 名前:デフォルトの名無しさん (ワッチョイ 91ad-R0M4) mailto:sage [2020/04/24(金) 00:19:26 ID:aTlSrVmc0.net]
>>592
>>593
書籍の学習は今でも必要だと
思うしさらにVBAだけでなく
他言語の経験があるといいな

VBAのスレで言うのも何だが
VBAプロパーのプログラムは
垢抜けない泥臭いのが多くて
その辺PHPと同じ感触がする

601 名前:デフォルトの名無しさん (ワッチョイ 7ab5-l81y) mailto:sage [2020/04/24(金) 02:40:01 ID:vJ3u9sjq0.net]
>>531
どなたか…四苦八苦して終わりません、、
お時間ある方がいましたらお助けを

602 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 03:41:33.98 ID:zeBff4Qi0.net]
>>596
そうだな、取りあえず質問する時に相手に伝わるか考えながら質問した方が良いかな。

>元のVBAのフォーマット
???
これは何のこと?
何を言ってるの?

シートのコピーで書式だけコピーしたいということ?
だったらそんな機能は無いと思うから、あとは工夫でどうにかする。
Rangeの書式だけコピーはあるから、シートの追加と書式だけコピーの複合にするか、俺ならそもそもコピー元の書式を全部コードで実現してシ一トの追加とその書式を実現するコ一ドでやる。

右に追加というのが特定のシート(4月)の右というならコピーだろうがシートの追加だろうがそのものずばりの引数がある。
WorkSheets.Copy、WorkSheets.AddでクグるとMSのぺージが見つかるから、そこにサンプルもある。
一番右に追加していくというなら、上の特定のシートの部分に最後のシートを指定すれば良い。
最後のシートってのはシートの指定方法は名前と番号の2通り有るので、今回は番号で最後を表現する。
最後ってのはシート数が7個あれば7番目になる。
この場合の7個ってのはシートの個数。
シートの個数はこれまたそのものずばりのプロパティがある。
(これも上のページのサンプルそのもの。)

603 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 04:14:59.23 ID:zODr3mBK0.net]
>>531
5回読んだけど理解不能
画像や絵使って説明してほしいわ

604 名前:デフォルトの名無しさん (ワッチョイ 2e9a-2b7E) mailto:sage [2020/04/24(金) 09:43:49 ID:5xvA7bcI0.net]
>>583
いつも同じこと感じています

605 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 12:06:13.25 ID:EzpkTm1A0.net]
他の人は知らんが俺は独学でコマンドマニュアル見たり参考書買ったりしてた
例えば数値でも加算を繰り返してどこでエラーがでるかとかを
実際にサンプル作って実行することをひたすら満足いくまで繰り返したりしたな
学校の勉強と並行してやってたからいつも寝不足だったし

606 名前:デフォルトの名無しさん (ワッチョイ b701-Bsub) mailto:sage [2020/04/24(金) 16:20:00 ID:Enw/zcBV0.net]
>>594
学習するのに何が効率いいかっていうよりも、
VBAを学習すること自体に対するリターンって意味でコスパが悪いと言いたかった

特にオフィス製品上でしか実行できない、やりたいことは単純な事が多いっていう特性上、
学習することでググったソースのコピペ以上に得られる物はあるのか?と。

内容を理解することでちゃんとしたコードが書けるってメリットはあるかもしれないが、
VBAで綺麗なコードを書けてもねぇ・・・
VBAのコードを拘るリソースは他に回すべきだ

607 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 17:35:34.28 ID:vJ3u9sjq0.net]
Sub Macro1()
  ChDir "c:\tmp"
  f = Dir("*.txt")
  c = 1
  Do While f <> ""
    Open f For Input As #1
    For r = 1 To 6
      Line Input #1, s
      Cells(r, c) = Split(s, vbTab)(2)
    Next
    Close #1
    f = Dir
    c = c + 1
  Loop
End Sub

ここで↑の
「指定した場所に入ってる全てのテキストのエクセル化した時の特定の列と行をエクセルシートに一気に読み込む」
という神の様なコードを教わったものです。

列と行の開始はこのままでいいのですが、テキストの行が空白になるまでエクセルに読み込む
というやり方に変える事は可能でしょうか。

これが職場の環境を大きく変えすぎて2人、本当に課からいなくなって現場に飛びました。
効率化しすぎて他でも応用できるようにしろと皆の前で大声で怒鳴られ泣けても知恵が出てこない
ゆっくり本読んで覚えていきたいにもまず最優先で作れと室内であんなに大声で怒られて
ネットで調べても調べ方すらわかっていなく
異動したい、何卒すみません

608 名前:デフォルトの名無しさん (ラクッペペ MM34-eHaU) [2020/04/24(金) 18:38:54 ID:GFko4FvkM.net]
>>601
普段の仕事がExcelならコスパいいだろ



609 名前:デフォルトの名無しさん (ワッチョイ ae01-NnsP) mailto:sage [2020/04/24(金) 18:40:11 ID:zODr3mBK0.net]
一から十まですべて教わらないとできないような人はやめたほうがいいわ
実力以上のコードを教わったところで何も応用できず周囲の期待には応えられない
5chで教えてもらって作りました
これ以上は分かりませんって正直に言えばいい

610 名前:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+) mailto:sage [2020/04/24(金) 18:49:29 ID:4FfGWszI0.net]
ForをDoにして、NextをLoop Until S=""かな
つか、二人分の人件費が浮くような作業なら、ちゃんとした会社にシステム化たのめよ

611 名前:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+) mailto:sage [2020/04/24(金) 18:51:14 ID:4FfGWszI0.net]
まあこれで動いたら>>602がさらなるドツボにはまるのをニヤニヤしようぜ

612 名前:デフォルトの名無しさん (オッペケ Sr5f-iTDC) mailto:sage [2020/04/24(金) 18:53:25 ID:K658YEair.net]
効率化して上司から怒鳴られるってどんな職場だ
上司がクソすぎ

613 名前:デフォルトの名無しさん (ワッチョイ 91ad-R0M4) mailto:sage [2020/04/24(金) 19:12:23 ID:aTlSrVmc0.net]
背伸びしても上手くいかないもんだね?

614 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/24(金) 19:16:29 ID:sF/e/OCE0.net]
>>602
ここに解決方法が書いてある
https://www.manpowergroup.jp/column/tenshoku/phrases-and-writing-of-change-wish.html

615 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:00:18.00 ID:/63/MmUO0.net]
コードくれくれ君

616 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:25:36.55 ID:gc0CgTOT0.net]
画像上部の21〜20日間隔の日付のセルの塗り潰しを下の1〜30日間隔の日付に塗り潰し変えたいんですがどうしたらいいですか?

・上部をforで2行目の最終列までループ
・ifで塗り潰し判定がTrue
・???
・???
・下部をforで2行目の最終列までループ
・ifで対象年月日間隔だったら塗り潰す

と、こんなイメージなのかなと思ってはいるんですが、??らへんの処理がわかりません。

https://i.imgur.com/I6hiP5r.png

617 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:30:28.43 ID:XJisoOEM0.net]
次から次へと馬鹿が出てくるのはなぜ?

618 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:36:47.04 ID:8o24J96M0.net]
Functionの任意引数(Optional)なのですが、初期値はstringかlong型のみだけしかダメなのでしょうか?
シート名objectの引数で、省略したときにActivesheetを返したいのですが、「定数式が〜」のエラーが出てしまいます。
やはり、IFとIsMissingを使うしかないでしょうか。

Function test(Optional objシート名 As Worksheet = ActiveSheet)
End Function



619 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:42:53.79 ID:l10aoXHL0.net]
そもそも引数とか型の意味理解してる?

620 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:44:19.85 ID:7EOq2zNJ0.net]
>>613
規定値に使えるのは定数値だけ
変数、プロパティ、関数などは使えない
だからActiveSheetも対象外

621 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:50:04.58 ID:7EOq2zNJ0.net]
>>611
その画像で説明すると、D3:K3をコピーしてC10:J10に書式貼り付けするだけでは

622 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:52:04.34 ID:lAut8yEK0.net]
>>611
D2からK3をコピーしてC9に貼り付けて C2をK9に貼り付けるだけじゃないの?
VBA使わない方が早そうなんだけど

623 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 00:53:34.41 ID:bDeh6DKGd.net]
>>611
塗りつぶす条件がわからなければわからない

624 名前:デフォルトの名無しさん (ワッチョイ 4c2c-Hty+) mailto:sage [2020/04/25(土) 00:58:07 ID:a/EKdpBi0.net]
>>602
Ruby なら、row.empty? で空行かどうか、判別できるけど

require 'csv'

CSV.foreach( "input.csv" ) do | row | # 1行ずつ処理
break if row.empty? # 空行なら、終了

puts "#{ row[ 0 ] } : #{ row[ 1 ] }"
end

入力ファイル・input.csv
あ,いう
a,bc

1,23

出力
あ : いう
a : bc

625 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 01:41:16.85 ID:7EOq2zNJ0.net]
>>602
読み込みを止める条件が空行とEOFの2つになると、とたんに処理が面倒になるんだよな
こういう時はLine Inputを別Functionに飛ばすとすっきりするんだけど、とりあえず汚い方法で書いてみた

Sub Macro1()
  ChDir "c:\tmp"
  f = Dir("*.txt")
  c = 1
  Do While f <> ""
    Open f For Input As #1
    s = "s"
    r = 1
    Do While Not EOF(1) And s <> ""
      Line Input #1, s
      If s <> "" Then Cells(r, c) = Split(s, vbTab)(2)
      r = r + 1
    Loop
    Close #1
    f = Dir
    c = c + 1
  Loop
End Sub

626 名前:デフォルトの名無しさん (ワッチョイ 1e09-w2of) mailto:sage [2020/04/25(土) 02:03:19 ID:8o24J96M0.net]
>>615
そうなのですね、ありがとうございました。

627 名前:デフォルトの名無しさん (ドコグロ MM46-f1XF) mailto:sage [2020/04/25(土) 05:53:44 ID:SWq+pauNM.net]
>>613
If 文使うしかないのはその通りだけど IsMissing() は引数の型を Variant にする必要があるのであまり良くない

Function test(Optional objシート名 As Worksheet = Nothing) ' Nothing は既定値なので指定しなくてもいい
If objシート名 Is Nothing Then Set objシート名 = ActiveSheet
End Function

ってやるのが定番
ググると同じことをやってる人がいる
akashi-keirin.hatenablog.com/entry/2018/03/01/081945

628 名前:デフォルトの名無しさん (ワッチョイ 211f-unif) mailto:sage [2020/04/25(土) 13:56:29 ID:gc0CgTOT0.net]
>>616
>>617
名前は下にたくさん羅列してるし、日付も右にもっとずっとあるからVBでやりたい。
日付間隔が上下で違うからどうやったらいいかと思って。

for 上部名前シートループ
 for 下部名前シートループ
  if 名前同一
   for 上部名前年月日列ループ
    if 塗り潰し
     ※下部シート塗り潰し
    end if
next
end if
next
next

※の部分がどう書くのかがわかりません。

>>618
塗り潰す条件は同じ名前の人に対して同じ日付の所へ塗り潰す。



629 名前:デフォルトの名無しさん (オッペケ Sr5f-iTDC) mailto:sage [2020/04/25(土) 14:00:26 ID:jVtajgfWr.net]
>>623
元データのc列を消せば良いのでは

630 名前:デフォルトの名無しさん (スフッ Sd94-S0vp) mailto:sage [2020/04/25(土) 14:21:24 ID:y/AcnKi/d.net]
>>623
上部のD列から見ていって塗ってあったら下部の一つ左の列を塗る

631 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 20:10:34.52 ID:Z1BPhcf20.net]
下記のコードで出力範囲1と2をまとめるにはどうすればいいでしょうか
Set OutputRange = Worksheets("Sheet1").Range("B2:C10")
For i = 1 To 9
For j = 1 To 2
For k = 2 To 3
OutputRange(i, j) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, k, False)
だとB,C列ともに列番号3をの値になる、というか列番号2で処理した後列番号3でもう一度処理を
しているため、すべて列番号3の値になるんじゃないかとは思うのですが、具体的にどう直せば
いいか教えていただけるとありがたいです

Sub Test()

Dim SerchKey As Range '検索値
Dim SerchRange As Range '検索範囲
Dim OutputRange1 As Range '出力範囲1 B列
Dim OutputRange2 As Range '出力範囲2 C列
Dim i As Long

Set SerchKey = Worksheets("Sheet1").Range("A2:A10")
Set SerchRange = Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A2:C10")
Set OutputRange1 = Worksheets("Sheet1").Range("B2:B10")
Set OutputRange2 = Worksheets("Sheet1").Range("C2:C10")

For i = 1 To 9
OutputRange1(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 2, False)
OutputRange2(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 3, False)
Next i

End Sub

632 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 20:18:25.81 ID:/63/MmUO0.net]
このスレにくる質問見ると、俺に読解力がないのかなといつも思ってしまう

633 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 21:06:29.21 ID:OxGSjC7Q0.net]
>>626
VLOOKUPは答えを複数返す関数じゃない

634 名前:デフォルトの名無しさん (ワッチョイ 7c7c-sVZV) mailto:sage [2020/04/25(土) 21:14:48 ID:OxGSjC7Q0.net]
あ、質問の意味が今わかったわ
入れるセル変えずに関数の列番だけ変えてたらそりゃ同じ値しか入らない
中身がどうなってるか想像じゃなくて実際に確認すればどう直せばいいかわかるだろう

635 名前:デフォルトの名無しさん (ワッチョイ bb5e-1Gce) mailto:sage [2020/04/25(土) 22:19:20 ID:Z1BPhcf20.net]
質問が説明不足だったようで失礼しました
出力範囲が複数列ある場合にそれぞれの列を「出力範囲1」「出力範囲2」と設定していけばいいという
ところまではわかったのですが、検索範囲が100列、出力範囲が99列、というように数が多くなった場合、
出力範囲のB列には検索範囲の列番号2  OutputRange1(i, 1)…… SerchRange, 2
出力範囲のC列には検索範囲の列番号3  OutputRange2(i, 1)…… SerchRange, 3
出力範囲のD列には検索範囲の列番号4  OutputRange3(i, 1)…… SerchRange, 4



という処理を99行書かずに変数で処理できないでしょうか、というのが質問の意図です

636 名前:デフォルトの名無しさん (ワッチョイ 38ef-1Gce) mailto:sage [2020/04/25(土) 22:58:11 ID:u3Cmop/t0.net]
j の役割って何だろう?

637 名前:デフォルトの名無しさん (ワッチョイ 7c7c-sVZV) mailto:sage [2020/04/25(土) 23:00:40 ID:OxGSjC7Q0.net]
だから>>626のループの中身がどうなってるか見て順番考えたらいいんじゃないの

638 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 00:49:06.95 ID:1a87l4R/0.net]
>>630
同じような処理を繰り返したい時は配列を使う

Dim OutputRange(10) As Range '出力範囲
Dim i As Integer

For i = 2 To 3
Set OutputRange(i) = Worksheets("Sheet1").Range(Cells(i, 2), Cells(i, 10))
Next

みたいな感じで、変数を使えば、何十個あっても簡単にまとめられる



639 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 02:34:49.27 ID:LqR8iAxp0.net]
なぜ馬鹿ばっかり来るのか

640 名前:デフォルトの名無しさん [2020/04/26(日) 03:25:04.50 ID:3JmljcZq5]
東大院生と本気数学トーク!!【数学ボーイZ 数学野郎さんコラボ】
https://www.youtube.com/watch?v=787N_AlSI0I
中3で数V先取り!? 京大数学系YouTuber古賀さんに開成中高時代を聞く!
https://www.youtube.com/watch?v=npswPUea1-M
開成から京大理学部に進学した理由とは?古賀さんに京大の実態を聞く!
https://www.youtube.com/watch?v=I8nWEHhgzxI
高校数学と何が違うの?大学数学でつまずかないためのアドバイス![大学数学準備講座1/4]
https://www.youtube.com/watch?v=duXZGbRviG4
数学は「定義」にかえることが大事!
https://www.youtube.com/watch?v=yhrUT4bLm7Q
数を創る話〜自然数から複素数への構成〜
https://www.youtube.com/watch?v=dQ2nFUTNchU
高校生でも雰囲気だけ分かるガロア理論
https://www.youtube.com/watch?v=LiPv0VuSvaE
高校生でも雰囲気だけ分かるゼータ関数とリーマン予想
https://www.youtube.com/watch?v=MaerL2XLaqk
【高校生でもわかる】いろいろな積分 リーマン,ルベーグ...
https://www.youtube.com/watch?v=jzfaFCDn5JY
大学で本気で学問をしたい人へのアドバイス
https://www.youtube.com/watch?v=7G7XbRSdk9k

641 名前:デフォルトの名無しさん (ワッチョイ d4da-1Gce) mailto:sage [2020/04/26(日) 06:16:38 ID:+0ojgInc0.net]
馬鹿ばっかり来るところにいるからじゃね
ってか自力でできるやつは質問なんかしないだろ

642 名前:デフォルトの名無しさん (ワッチョイ 9602-TRCj) mailto:sage [2020/04/26(日) 09:08:46 ID:rBKIu5KT0.net]
>>636
それググレカスキッズだと思う
>>612

643 名前:デフォルトの名無しさん (ワッチョイ 2c7f-KNAb) mailto:sage [2020/04/26(日) 10:18:45 ID:LS9zyJ5J0.net]
複数あるコマンドボタンをどれを押しても一つの処理に入り、押されたボタンを取得して、ボタンごとに判断処理ってできないのでしょうか。(activeXです)

具体的にはシリアルポートの処理で以下のことをやりたいです。
コマンドボタンが機器名、その機器ごとに存在する複数のコンボボックスにポート名やボーレートを設定。
あるコマンドボタンを押したら、対応するコンボボックス郡の設定を取得してポートを開く。(ポートオープンはモジュールに記述したWritefileでやってます)
ポートオープンで返ってきたハンドラが例外でなければ、押されたコマンドボタンの色を変更し、名前を"機器名+接続中"に変更。
また、コマンドボタンを押した時点で対応ポートのハンドラが存在すれば、そのポートを閉じて(ハンドラも初期化)、押されたコマンドボタンの色を戻す。

現在はボタンごとのプロージャを作成し、同じような処理を逐一書いてますが、機器が複数あって大変見にくいのと、記述が大変なのでまとめたいです。

644 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 10:39:23.22 ID:oDDaXD960.net]
>>638
それ、まともにやろうとするとかなり上級レベル。
上級者を自認する人でも出来ない人が結構いる。

645 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 10:39:50.30 ID:1a87l4R/0.net]
>>638
「コントロール配列」でぐぐれ
www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_100_040.html

646 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/26(日) 10:44:46 ID:1a87l4R/0.net]
>>638
同じような処理なら、ボタンクリックのイベントの中で変数にボタン名を設定してから、別に用意した共通部分のSubを呼び出せばいい

ヒント
woodbook.kir.jp/excel/vba/button_row.html

647 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 10:46:58.47 ID:oDDaXD960.net]
おっ、それを貼るとは。
じゃあ、俺も。
以下の一連を全て理解し、使いこなせれば大分変わる。

addinbox.sakura.ne.jp/Breakthrough_P-Ctrl_Arrays.htm

648 名前:デフォルトの名無しさん (ワッチョイ 2c7f-KNAb) mailto:sage [2020/04/26(日) 11:53:55 ID:LS9zyJ5J0.net]
ありがとうございました
手っ取り早くやれそうな感じではなさそうです



649 名前:デフォルトの名無しさん (ワッチョイ 3563-Btmo) mailto:sage [2020/04/26(日) 12:03:24 ID:3XXXGp1c0.net]
>>640
懐かしいなコントロール配列
昔はよく使ったが最近使ってないな

650 名前:デフォルトの名無しさん (ワッチョイ 0791-2b7E) mailto:sage [2020/04/26(日) 12:07:36 ID:oDDaXD960.net]
>>643
一応言っておくと、途中迄なら出来るかもしれないし(それで十分かも)、読み物としても読んどくと良いと思う。

651 名前:デフォルトの名無しさん (ワッチョイ 2c7f-KNAb) mailto:sage [2020/04/26(日) 14:41:44 ID:LS9zyJ5J0.net]
>>643
紹介頂いたサイトの大元になるmougを参考にして押したボタンの色変えぐらいまでしかできません
この処理にシート画面上のコンボボックスの値を関連付けて取得する仕掛を入れたいのですが検討つかず

652 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:58:20.12 ID:io10sll9a.net]
各ボタン押した最初の処理だけわけて
引数つけて共通処理に飛ばせばよくね

653 名前:デフォルトの名無しさん (ワッチョイ 7ab5-l81y) mailto:sage [2020/04/26(日) 18:40:06 ID:IAQJrydO0.net]
全部ここの人達のおかげで完全に憑き物が取れて教えて貰ったURLと持ってる本を参考にひたすら初歩のルールから愚直に
打っては実行を繰り返し練習してます

Do loop
For next
特にこれの破壊力は凄いですね
これだけの為に覚える価値すらあると感じました
あとはmsgboxの使い方の面白さ
感謝しかないです

Do loopでwhileとuntilがあるけどよほど複雑でない場合
書き方変えるだけで同じ処理させられる感じですが
基本どっちかでで使い方覚えていったほうがいいものですかね
質問というよりただただ楽しくここの上級者たちにも癖だったり自分ルールがあるのかなと
ああ楽しい

654 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 19:35:22.95 ID:1a87l4R/0.net]
>>648
繰り返す条件が明確な場合はwhile、終了条件に着目した方が処理の流れがわかりやすい場合はuntil
適切に使い分けると、プログラム全体が読みやすくなって間違いが減る

655 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/26(日) 19:37:28 ID:1a87l4R/0.net]
よくない例
While Not 終了条件

適切な例
Until 終了条件

656 名前:デフォルトの名無しさん (ワッチョイ 7ab5-l81y) mailto:sage [2020/04/26(日) 20:25:45 ID:IAQJrydO0.net]
>>650

Sub ループwhile()
 Dim i As Long
  i = 1
 Do While Cells(i, 1) <> ""
 Cells(i, 3) = Cells(i, 1) + 10
 i = i + 1
 Loop
 MsgBox i & "回whileでループ"
End Sub

Sub ループuntil()
 Dim i As Long i = 1
 Do Until Cells(i, 1) = ""
 Cells(i, 3) = Cells(i, 1) + 10
  i = i + 1
 Loop    
 MsgBox i & "回untilでループ"
End Sub

なるほど、空白になるまでループってのを練習してました
後者の方が一般的ですかね
勉強になります。

657 名前:デフォルトの名無しさん [2020/04/26(日) 21:08:58.39 ID:RAbG8RW6a.net]
僕は wihle しか使わない
理由は c言語にないから

あと、なんとなくだけど、wihle と until は混ぜて使わない方がよい気がする

いや、混在する人がいても文句は言わないと思うけど

658 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 21:11:31.65 ID:RAbG8RW6a.net]
>>652
651 ですが、
理由は until はc言語にないから
です
すみません



659 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 21:21:03.37 ID:wya5Zv+N0.net]
ド・モルガンの法則なんてのを知ってるとループ条件が
劇的に易しく書けるようになったりするよ

660 名前: mailto:sage [2020/04/26(日) 21:43:11.03 ID:Whjp3eXS0.net]
>>654
ドモルガンは法則ではなくて公理すなわち前提条件なのでは?

661 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/26(日) 22:54:36 ID:1a87l4R/0.net]
Not Is Nothing
英語の否定文って日本語とロジックが違うから直感的にわかりにくい

662 名前:デフォルトの名無しさん (アウアウエー Sa6a-1Gce) mailto:sage [2020/04/26(日) 23:37:47 ID:x2OEBIkDa.net]
少なくとも一回実行する必要があるとき until
一回も実行しないかもしれないとき while

663 名前:デフォルトの名無しさん (ワッチョイ b05c-QpYc) mailto:sage [2020/04/27(月) 00:02:16 ID:i1fhLCEO0.net]
まぁ大事なのは自分の中でしっかりルールを固めておくこと
なんとなくで使い分けてると100%デスマに陥る

664 名前:デフォルトの名無しさん (ワッチョイ 0a2f-Hty+) mailto:sage [2020/04/27(月) 00:02:40 ID:pzY5bj450.net]
>>657
VBAでは、それはDo側に書くかLoop側に書くか

WhileかUntilかはその条件の意味的なもので使い分けるのが本筋だろうけど
書くときの話ならどちらかに統一するルールでも良いと思う

665 名前:デフォルトの名無しさん (ワッチョイ ca56-nG0h) mailto:sage [2020/04/27(月) 00:32:05 ID:7P4A4QOo0.net]
シート1のA1セルにx1、x2、x3と設定し、このx1〜x3をそれぞれx1をB1セルに設定されている値、x2をC2セルに設定されている値に置換するにはどのようにすればよいのでしょうか
Replaceでは検索文字列および置換文字列を一つずつ指定できないため、検索したい文字列が増えるたびに処理が無駄に増えてしまうように思うため効率的なやり方を教えていただきたいです

666 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 03:31:04.69 ID:Rq5FZkLb0.net]
もっとわかるように説明してもらわんと

667 名前:デフォルトの名無しさん (ワッチョイ ae63-V/Lh) [2020/04/27(月) 04:12:22 ID:NMjdVbpJ0.net]
置換と言ってるからセル参照ではない事だけわかった

668 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 04:51:42.68 ID:o+TU1QYP0.net]
学習能力のないひとがやってきて
説明能力の貧弱さを露呈する場所か・・・



669 名前:デフォルトの名無しさん (ワッチョイ 91ad-R0M4) mailto:sage [2020/04/27(月) 05:03:04 ID:Nsh172gi0.net]
>>648
IF文、For文と配列で簡単な処理はこなせる
上級者はまた別のパラダイムで書いているが
先走る必要もなく基礎を確実に身につけよう

>>655
ド・モルガンは定理になることが多いが
そうなるのは公理系しだいだから
名前がおかしいと感じたことはない

670 名前:デフォルトの名無しさん [2020/04/27(月) 06:05:48.59 ID:XYadQOO00.net]
>>660
非効率なコードを上げてくれ

671 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 06:24:43.93 ID:3fBcsBz5r.net]
>>660
select case

672 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 08:38:39.18 ID:MOHWKMXM0.net]
>>660
x3をd3に入れる
置換にこだわらず、代入しなおす

673 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 09:24:40.63 ID:JVYKLC34M.net]
ワークシート名をsheet(i)みたいな感じで配列に格納して、
for i=i to X
sheet(i).cell(row,col) = data
next
の様な、ループで各シートのセルに値を代入する方法を教えていただけないでしょうか。

674 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 10:44:49.67 ID:p6J78QU70.net]
>>668
実際の要件知らんが、普通はもっといい方法があると思うが、質問通りに。

https://i.imgur.com/SdMgpZq.png

675 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 10:47:33.37 ID:o+TU1QYP0.net]
Dim i As Integer
For i = 1 To 3
ThisWorkbook.Worksheets(i).Cells(1, 1) = 1
Next i

で済むようなものだと予想

676 名前:デフォルトの名無しさん (ワッチョイ 0101-K+B8) mailto:sage [2020/04/27(月) 13:38:56 ID:JH5ykH9R0.net]
・ツールの作成
・バク対応、修正業務
・各種テスト
VBAを用いて上記の業務を行う場合、皆さん(自分の取り巻く環境以外)の現場で求められる頻度や重要度が高いスキルや業務を伺いたいです。
よろしくお願いします。

677 名前:デフォルトの名無しさん [2020/04/27(月) 15:07:52.31 ID:VtI6ihiD0.net]
>>671
馬鹿は死ね

678 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 15:33:05.22 ID:uroKfm2Gd.net]
>>668
何でシート名で配列なの?
既にシートオブジェクトの配列として使えるのに。



679 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 15:35:59.76 ID:MOHWKMXM0.net]
>>668
シート名は普通に列挙したいんだと思った
コード内に記述したいのか: sheet=Array("hoge","fuga","piyo","puyo")
セル内に記述したいのか: sheet=WorksheetFunction.Transpose(WorkSheets("hoge").Range("a1:a4"))
どうか、わかんないけど

680 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 15:36:24.43 ID:uroKfm2Gd.net]
>>671
そいつは現場次第だよねえ。

現場に併せて何でも出来るってことかな。
AccessならSQLは必須だと思うけど。

681 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 16:19:32.17 ID:JH5ykH9R0.net]
>>672
生きる!!!

>>675
自分の周り以外だとどんなことにVBA使ってるか気になりましてね。他意はマジでなくて、単純な興味として質問してみますた。

682 名前:デフォルトの名無しさん (JP 0H34-GHE+) mailto:sage [2020/04/27(月) 17:19:41 ID:H2efCY7TH.net]
既存のVBAをどうしてもメンテせざるを得ないときに使う
新規に使うことはない

683 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 18:02:05.74 ID:fDdETITO0.net]
ちょっとデータを加工したい時、軽い処理とか1回限りの計算はVBAでやってる
VisualStudioはその場限りの捨てコードを書くには大げさすぎる

684 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 18:06:27.58 ID:JnEQ074MM.net]
>>678
そんな貴方にPowershellオススメ

685 名前:デフォルトの名無しさん (ワッチョイ 0101-K+B8) mailto:sage [2020/04/27(月) 18:40:53 ID:JH5ykH9R0.net]
>>677
>>678
レスありがとうございました。
ちょっとした作業を手軽に(環境構築とかなしで)効率化するときに使ってるってのが分かりました。
何気なく使ってるから頻度も重要度もクソもないと

686 名前:デフォルトの名無しさん [2020/04/27(月) 19:15:08.58 ID:XYadQOO00.net]
昔は「値で貼り付け」とかキー割り当てしてたけど最近のは割と便利になったから使ってないな
他には初回印刷日の挿入とか
ファイルプロパティにタイトルの設定とかかな

687 名前:デフォルトの名無しさん (ブーイモ MMfd-enkp) [2020/04/27(月) 20:04:15 ID:GiQWIPCuM.net]
「値で貼り付け」に関して最近のはどう便利になってるの?

688 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 20:24:28.01 ID:Jy0k1GG60.net]
VBAでの開発依頼がしょっちゅう来る…



689 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 20:30:04.12 ID:XYadQOO00.net]
>>682
https://i.imgur.com/xIc2Szq.jpg

690 名前:デフォルトの名無しさん [2020/04/27(月) 20:34:34.60 ID:z3LiCQZGM.net]
配列を使った方が良い場合ってどんな時?

691 名前:デフォルトの名無しさん mailto:sage [2020/04/27(月) 20:48:23.14 ID:XYadQOO00.net]
>>685
相手は誰だ?
ワークシート? Dictionary? CSV文字列?

692 名前:デフォルトの名無しさん (ワッチョイ 0101-K+B8) mailto:sage [2020/04/27(月) 23:24:48 ID:JH5ykH9R0.net]
>>681
自分の素朴な疑問に答えてもらってありがとうございます。

693 名前:デフォルトの名無しさん (ワッチョイ 7a4b-R0M4) mailto:sage [2020/04/27(月) 23:26:56 ID:g7wz6Zov0.net]
ここの人ら凄い、
いつも感心しながら読んでるけど本当に勉強になる。
これだけ知識や経験あるならユーチューバ―とかになって上手くやれば副業も出来そう

694 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/27(月) 23:27:29 ID:fDdETITO0.net]
>>685
処理したい変数がたくさんあって繰り返し同じことをする時
処理したいセルがたくさんあって繰り返し同じことをする時

695 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/27(月) 23:28:15 ID:fDdETITO0.net]
office田中もいつのまにかyoutuberになってたけど、こんなおじいちゃんだとは思わなかった

696 名前:デフォルトの名無しさん (ワッチョイ 64ad-Btmo) [2020/04/27(月) 23:42:25 ID:RTbdScdC0.net]
VBAを本を読んだりググったりして勉強中です。
他社システムからいただくCSVファイルをExcelに取り込んで編集する必要があります。
頭にゼロが付いて、長さが不定の数字のフィールドがあるので、そこは文字列で
扱わなくてはならず、そのままExcelで開けません。
querytables.add でインポートしてみたところ、セル内改行の含まれる列があるため、
1行であるべきデータが2行になってしまいます。
POWERQueryを使えば回避できる、という情報にに突き当たり、とりあえずマクロの
記録をしてみて、使えるように変えられないか、と思いましたが行き詰っています。
「ソース = Csv.Document(File.Contents(””CSVのパス””),… 」
のCSVのパスの部分を変数にしたいのですが、変数にすると
「 .Refresh BackgroundQuery:=False」のところで
[Expression error] インポート 変数 がエクスポートと一致しません。モジュールの参照が漏れていませんか?」
と親しげだけど、冷たく突き放されます。
知識が足りなさすぎるのですが、データをきれいにして早く次の処理を作らなくては
いけなくて焦っています。
先輩たちはテレワークで、あまり質問もできず困っております。
どうぞよろしくお願いいたします。

697 名前:デフォルトの名無しさん (オッペケ Sr5f-HrHD) mailto:sage [2020/04/27(月) 23:45:46 ID:3fBcsBz5r.net]
>>690
再生数少ないけど分かりやすいから初心者は見るべきだと思う
schooのは微妙だけど

698 名前:デフォルトの名無しさん (ワッチョイ 4c2c-iUOt) mailto:sage [2020/04/28(火) 01:18:35 ID:7QVY/xgO0.net]
>>691
Ruby なら、以下をscript.rb に書いて、
CSV データを、input.csv に書いてある時、

ruby script.rb input.csv
と、シェルで実行すると、

require 'csv'

file_path = ARGV[ 0 ] # 引数には、CSVファイルパスを渡す。input.csv

# CSV ファイルを、1行ずつ処理する
CSV.foreach( file_path ) do |row|
puts "#{ row[ 0 ] } : #{ row[ 1 ] }"
end

入力・input.csv
あ,いう
a,bc

出力
あ : いう
a : bc



699 名前:デフォルトの名無しさん (ワッチョイ 7ab5-l81y) mailto:sage [2020/04/28(火) 02:18:31 ID:wtscQEd50.net]
Sub ループuntil()
 Dim g As Long
  g = 3
 Do Until Cells(g, 2) = ""
 Cells(g, 6) = Cells(g, 2) + Cells(g, 3) * 10
 g = g + 1
 
 Loop Dim ms As String
 ms = MsgBox(g & "回ループ", vbYesNo, "どうやら")

 If ms = vbYes Then
 MsgBox "更に練習", vbYesonly, "じゃあ"   Else
 MsgBox "論外", vbYesonly, "てめーは"   
 End If
End Sub

何とか練習しつつ
ここにきてデータ型が逆に混乱してきましたわ
バリアントでごまかそうかな
おやすみなさい

700 名前:デフォルトの名無しさん (ワッチョイ d98e-A1EL) mailto:sage [2020/04/28(火) 02:51:59 ID:ro9Vnp/Q0.net]
>>691
こんな馬鹿に仕事をさせるのが間違い

701 名前:デフォルトの名無しさん (ワッチョイ acce-1Gce) mailto:sage [2020/04/28(火) 03:02:31 ID:OG4s1hHd0.net]
>>694
これ、そこらの入門書にはなかなか書いてないんだけど、MsgBoxの結果はVbMsgBoxResultという特殊な型なので、変数msはこう宣言するのが正解

Dim ms As VbMsgBoxResult

この宣言を書いてからコードを書くと、

If ms =

ここまで入力すると自動的に、vbYesとかvbNoなどの選択肢が出てくる

702 名前:デフォルトの名無しさん (ワッチョイ 66e6-iUOt) mailto:sage [2020/04/28(火) 04:56:00 ID:Ok+k67Xa0.net]
Select Case "CSVファイルをExcelに取り込む"
Case "直接開く"
MsgBox "0 padding"
Case "querytables"
MsgBox "inline CR"
Case "POWERQuery"
MsgBox "Syntax Error"
Case "先輩たち"
MsgBox "テレワーク"
Case "2ch"
MsgBox "ググレカス"
Case "自分"
MsgBox "勉強中"
End Select

703 名前:デフォルトの名無しさん (ワッチョイ 91ad-R0M4) mailto:sage [2020/04/28(火) 05:30:30 ID:CHpsAleC0.net]
>>690
VBAは年齢層高いだろ?
Pythonとかより

704 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 06:23:10.14 ID:fDIatR4a0.net]
最近csvを開くのがはやってるみたいだけど、拡張子をtxtに変えて開き直すといいよ

705 名前:デフォルトの名無しさん (ワッチョイ 048f-1Gce) mailto:sage [2020/04/28(火) 08:10:33 ID:uR1kyCkX0.net]
>>671
ぜ・ん・ぶ

706 名前:デフォルトの名無しさん (スッップ Sd70-bbQE) mailto:sage [2020/04/28(火) 08:27:27 ID:F6rfqhbJd.net]
>>685
速度アップの為にあえて使うのはVariant配列。

配列にすることに全く違和感が無いので、"あえて"使うことが少ない。
配列にするのに自然なことがたくさんあるし、普通に使ってる。

707 名前:667 (ワッチョイ 2c7f-So6t) mailto:sage [2020/04/28(火) 13:36:09 ID:1XDByXps0.net]
ありがとうございました。
できました。

708 名前:デフォルトの名無しさん (ワッチョイ 7349-xf6K) mailto:sage [2020/04/28(火) 13:57:24 ID:0tfnjkqK0.net]
いえいえ



709 名前:デフォルトの名無しさん (ブーイモ MM5e-43Dx) mailto:sage [2020/04/28(火) 17:53:56 ID:YPs9lugpM.net]
Sub テキスト抽出()
  ChDir "c:\tmp"
  f = Dir("*.txt")
  c = 1
  Do While f <> ""
    Open f For Input As #1
        Line Input As #1,s
    s = "s"
    r = 1
    Do While Not EOF(1) And s <> ""
      Line Input #1, s
If s <> "" Then Cells(r, c) = Split(s, vbTab)(5)
    r = r + 1
    Loop
    Close #1
    f = Dir
    c = c + 1
  Loop
End Sub

710 名前:デフォルトの名無しさん (ブーイモ MM5e-43Dx) mailto:sage [2020/04/28(火) 18:04:37 ID:YPs9lugpM.net]
ここで教えて頂いた>>704の「指定Path内の全txtデータのF列2行目から下に数値が続く限りシートに全部抽出する」コードのお陰で憑き物が取れて運用してるのですが
たまに画像の様な他の列に行がはみ出したデータがあると

実行時エラー'9':
インデックスが有効範囲にありません
で止まりますが

これを「他の列がどうだろうがtxt内のF2から下に数値が続く限り抽出」
に改良するのは難易度高いですか?
というかコードで可能でしょうか
入門編の本には載って無く数字変えたりwhileの位置変えたりしてますが簡単にいくはずもなく
参考になるサイトなどありましたら教えて頂けませんでしょうか

↓こんなデータが混じってるとエラーで止まります
https://i.imgur.com/194ePDL.jpg

711 名前:デフォルトの名無しさん (アウアウウー Saab-/zYc) mailto:sage [2020/04/28(火) 18:19:12 ID:uYkVg/g/a.net]
>>704
まんなかへんのdo while の後ろはかっこをつけたほうがいいよ
判定の対応がわかりにくいので

712 名前:デフォルトの名無しさん (ワッチョイ 7a4b-R0M4) mailto:sage [2020/04/28(火) 18:35:05 ID:yXtY+D7s0.net]
>>690
元々有名な人なんだね。
投稿動画多くてあれこれクリックしてるうちにどんどん登録者数が伸びてったからビックリした。
最初見た時は5000ぐらいだったのに、さてどこまで伸びるかな。

713 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 19:06:29.99 ID:fDIatR4a0.net]
>>705
>If s <> "" Then Cells(r, c) = Split(s, vbTab)(5)
この行、最後に(5)ってついてるでしょ
読み込んだデータに5+1番目(0スタートだから+1)の要素が無かったら、どうなると思う?

ここは、splitの結果を一旦配列変数に受けて、配列の大きさを確認する判定をいれるといいよ
実を言えば、s<>"" の判定も不要だったりもする

714 名前:デフォルトの名無しさん (ワッチョイ 048f-1Gce) mailto:sage [2020/04/28(火) 19:48:07 ID:uR1kyCkX0.net]
都道府県別の7日移動平均線を出すグラフ組めないかなあと
思って、

715 名前:「都道府県別の日々新規感染者数」を探したけど見つからん…。

なんで役人は pdf にしたがるんだろう。
[]
[ここ壊れてます]

716 名前:デフォルトの名無しさん (ブーイモ MMed-43Dx) mailto:sage [2020/04/28(火) 20:13:54 ID:ZPYYxv13M.net]
>>708
正直ほとんどさっぱりわからないです。
が、ありがとうございます。そこらへんをいじればなんとかしろなりそうってことですかね。
まだ変数の使い方もよくわかってないのでsplit関数で検索して集中的に勉強していじれるようにがんばります。

717 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 21:00:00.12 ID:CHpsAleC0.net]
>>707
VBAはハードル低くて
エクセルが実用的だから
ユーザが多いんだろう

718 名前:デフォルトの名無しさん (ワッチョイ 4c2c-iUOt) mailto:sage [2020/04/28(火) 22:51:18 ID:7QVY/xgO0.net]
データは、PDF じゃなくて、アプリで処理しやすいように、
同じ場所に、CSV ファイルも置いておくのが基本!

役人は、データ処理の素人w



719 名前:デフォルトの名無しさん mailto:sage [2020/04/28(火) 23:02:38.82 ID:IT0hJXXxM.net]
EOF関数?
なんじゃこりゃ

720 名前:デフォルトの名無しさん [2020/04/28(火) 23:21:24.84 ID:7mVXavmj0.net]
>>709
各都道府県毎にオープンデータでCSV配布してるのに何言ってんだ?

721 名前:デフォルトの名無しさん (ワッチョイ e709-LlFz) mailto:sage [2020/04/29(水) 01:03:36 ID:j7HdUAEO0.net]
VBAから参照設定をせずにoutlookを操作しようとしていますが、
「Set mailItemObj = oApp.CreateItem(oApp.olMailItem)」のところで、
「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」と
エラーが出てしまいます。どうすれば解決できますでしょうか。。。

Sub sendmail_sample1()
Dim oApp 'As NEW Outlook.Application OutlookのApplication
Dim myNameSpace 'As Outlook.NameSpace
Dim myFolder
Set oApp = CreateObject("Outlook.Application") 'VBAで参照設定をした場合は不要
Set myNameSpace = oApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(9)
'---コード1|outlookを起動する
Dim toaddress As String '変数設定:To宛先
Dim subject As String '変数設定:件名
Dim mailItemObj 'Outlookで使用するオブジェクト生成
'---コード2|差出人、本文、署名を取得する---
toaddress = Range("B2").Value 'To宛先
subject = Range("B5").Value '件名
'---コード3|メールを作成して、差出人、本文、署名を入れ込む---
Set mailItemObj = oApp.CreateItem(oApp.olMailItem) '★★★ここでエラー
mailItemObj.BodyFormat = 3 'リッチテキストに変更
mailItemObj.To = toaddress 'to宛先をセット
mailItemObj.subject = subject '件名をセット
'---コード7|outlookを閉じる(オブジェクトの解放)---
Set oApp = Nothing
Set mailItemObj = Nothing
End Sub

722 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/04/29(水) 01:10:43 ID:ICnUrfUx0.net]
>>715
こうかな?
Set mailItemObj = oApp.CreateItem(olMailItem)

723 名前:デフォルトの名無しさん (ブーイモ MM2b-EVni) mailto:sage [2020/04/29(水) 01:34:35 ID:L1oMckOiM.net]
配列変数難しすぎて笑える

724 名前:デフォルトの名無しさん (ワッチョイ e709-LlFz) mailto:sage [2020/04/29(水) 01:35:24 ID:j7HdUAEO0.net]
>>716
レスありがとうございます。
「変数が定義されていません」エラーが出てしまいます・・・

725 名前:デフォルトの名無しさん (ワッチョイ e709-LlFz) [2020/04/29(水) 01:40:00 ID:j7HdUAEO0.net]
>>715です。自己解決いたしました。
olMailItemを値指定でゼロ(0)にしたらできました。。。
謎ですが。。。ありがとうございました。。。

726 名前:デフォルトの名無しさん (ワッチョイ bff7-INiV) mailto:sage [2020/04/29(水) 09:03:38 ID:osglNTbf0.net]
定数ってoutlook.olMailItemみたいに書くんじゃなかったっけCreateObjectで別定義する必要があったはず
Excel上だとリファレンス入れないと>>716は機能しない

727 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 09:13:47.90 ID:EmE7DP7rx.net]
ただのパラメータ定数参照だから普通に数字を入れればいいだけ
olMailItemは0だったかな

728 名前:690 (ワッチョイ a7ad-LlFz) [2020/04/29(水) 09:22:41 ID:sSCyRYOw0.net]
>>691です。
みなさんありがとうございました。
もっと勉強します。
>>69



729 名前:7
ちょっと楽しい気持ちになりました。恩に着ます。
[]
[ここ壊れてます]

730 名前:デフォルトの名無しさん mailto:sage [2020/04/29(水) 18:51:15.87 ID:IoQm9XvmM.net]
msgboxの使い方
inputboxの使い方
Do loop
For next
if then else
初歩だけどここらを色々繰り返し勉強してると楽しい
msgboxは使い方もっと応用していきたい
楽しみながら勉強するといいですね
他にもっとお勧めの処理ありますかね。

あとさらに低レベルな疑問なんですが
vbYesNo
vbOkCancel

これってみんな細かに使い分けます?
タイトルとメッセージで誘導してあげて
elseで何もしないにするとほぼ通じちゃいますよね
これも使い分け必須だったりするのでしょうか

731 名前:デフォルトの名無しさん (アウアウウー Saab-NLJ6) mailto:sage [2020/04/29(水) 20:00:57 ID:ZY0E7GgZa.net]
やってみればわかると思うが

732 名前:デフォルトの名無しさん (ワッチョイ a75f-rvxR) mailto:sage [2020/04/29(水) 22:30:45 ID:sZxShGZL0.net]
メッセージBOXが出ている状態でESCキーを押された時の挙動が違う。

733 名前:デフォルトの名無しさん (ワッチョイ a78e-DBwA) [2020/04/29(水) 23:54:48 ID:GcIsSLnW0.net]
>>723
そろそろ馬鹿は死ね

734 名前:デフォルトの名無しさん (ワッチョイ 67ac-fZS3) mailto:sage [2020/04/30(Thu) 00:04:19 ID:UCocORui0.net]
vbaって必要に迫られてやることが圧倒的な気がする
だからおすすめの処理とか言われてもな

735 名前:デフォルトの名無しさん (JP 0H8f-sYkk) mailto:sage [2020/04/30(Thu) 02:12:11 ID:e+nUl/nvH.net]
同意
VBAは使わなくていいなら使わない方が望ましいわけで、
おすすめと言われると「まずはVBAを使わなくてよい方法を考えること」としか言いようがない

736 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/04/30(Thu) 03:10:10 ID:mLi4d9n50.net]
道具なんて使う人次第
手作業とワークシート(数式)とVBAと別アプリと、何でやれば一番楽で間違いが起きにくいか比較検討して使い分けるのが理想

737 名前:デフォルトの名無しさん (ワッチョイ c7da-ts7H) mailto:sage [2020/04/30(Thu) 03:36:49 ID:gai1ourp0.net]
>>723
きびしめの意見が続いてかわいそうになったので
めげずにがんがれ

738 名前:デフォルトの名無しさん (ワッチョイ df01-lZTE) mailto:sage [2020/04/30(Thu) 03:50:06 ID:HupizHgZ0.net]
数式だとすぐぶっ壊されてその修正に手間がかかるのでVBA使うのが好き
仕方なく数式に頼ったとしても、数式を一括修正できるボタンとかVBAで作っちゃってる
数式入ってるセルに保護かければいいじゃんって思うだろ・・・・
そうするとな、なんでここには入力できないんだよ!ってクレームがな、
いや、そこはここのシートのこの値が転記されるようになってて・・・とかいう説明を聞き入れる輩じゃないんだ



739 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 04:08:29.30 ID:mLi4d9n50.net]
人に渡すブックなら、VBAは消してシートはバックアップを取っておく
何やったっていじるやつはいじるし文句を言うから、結果だけを渡すようにしとかないと

740 名前:デフォルトの名無しさん (ワッチョイ e7ad-GPK9) mailto:sage [2020/04/30(Thu) 04:41:41 ID:HvDy85U60.net]
>>723
>お勧めの処理
VBAが初心者でも簡単に扱えるのは
エクセルというGUIがついてるから

だけど普通のCUIプログラミングも
できると技術的に幅が広がるだろう

たとえばPythonとかRubyとかでね

741 名前:デフォルトの名無しさん (ワッチョイ e7ad-GPK9) mailto:sage [2020/04/30(Thu) 04:48:14 ID:HvDy85U60.net]
>>731
>>732
複数人利用で関数メインだと
すぐぶっ壊されるのは分かる

あと壊れなくても長期的には
VBAの方が修正が楽だよな?
関数は処理の全体像が不透明

742 名前:デフォルトの名無しさん (ワッチョイ c763-+JA7) [2020/04/30(Thu) 06:40:13 ID:PqPYAyi70.net]
まぁ関数でできる処理は関数でした方が処理自体速いんだけどな
悩ましいけどセル保護だけじゃなく列や行を隠しとかもするけど、いじる人は何しようと結局いじるからね…

VBAと関数で使い分けしないとVBAはどんだけCPUのコア数あっても1コアでしか動作しないから、重たい処理になると頭打ちになる

743 名前:デフォルトの名無しさん (アークセー Sx5b-apiA) mailto:sage [2020/04/30(Thu) 07:48:59 ID:OrbFqVlKx.net]
ワークシート関数が処理の全体像が不明っていってる奴はたぶん関数がセル内できるのを知らないとか、テーブル機能を知らないとか、たぶんそんな感じだろう
ワークシート関数もVBAも下手くそに作ればカオスになる

744 名前:デフォルトの名無しさん (ブーイモ MMcf-EVni) mailto:sage [2020/04/30(Thu) 08:27:32 ID:/wWgOKjWM.net]
なるべく関数はエクセル内で完結させてる
何かの呼び出しや処理のみにVBAにやらせてる
マスター版を個人で持っておく
いじられてもよほどのことが無い限り知らんふり

745 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 08:46:50.92 ID:HvDy85U60.net]
一年後に処理の内容全部忘れてから
もう一回見てご覧?
関数よりVBAの方が分かりやすいから

746 名前:デフォルトの名無しさん (アークセー Sx5b-apiA) mailto:sage [2020/04/30(Thu) 09:38:23 ID:OrbFqVlKx.net]
ワークシート関数の見通しが悪いのはシートの使い方や関数の書き方が悪いから

テーブルで構造化参照させる
多重ネストをしないように作業列を積極的に使う
多重ネストが避けられない場合ははセル内改行する
静的変数として固定セルを参照する場合は名前付きセルにする

こういう配慮をしているかどうかが大切

可読性はVBAと大差ない
VBAだって下手に書くと二度とメンテナンス出来なくなる

747 名前:デフォルトの名無しさん (JP 0H8f-sYkk) mailto:sage [2020/04/30(Thu) 10:14:10 ID:dUO320lFH.net]
>>738
VBAだけ見りゃ理解できるように書いてあるんならいいさ
ハイスキルな君の書くVBAもきっとそうなのだろう
ただ、世の中のほとんどのVBAマクロはワークシートのレイアウトに激しく依存しており、
シートと見比べないと意味不明だし簡単に壊れる

748 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 10:50:37.55 ID:KvTMWgJl0.net]
>>714
そうなの?じゃあ俺の検索力不足だ。
教えてもらえるとありがたい



749 名前:デフォルトの名無しさん (ワッチョイ bff7-INiV) mailto:sage [2020/04/30(Thu) 11:52:42 ID:RI8oXcu50.net]
シート連結部分はクラスにしようぜ

750 名前:デフォルトの名無しさん mailto:sage [2020/04/30(木) 18:07:04.25 ID:R8msXZW7a.net]
クラスターつくるのか

751 名前:デフォルトの名無しさん (ワッチョイ 2701-F4ic) mailto:sage [2020/04/30(Thu) 20:10:03 ID:6PshQwim0.net]
>>738
これは分からんでもないわ

752 名前:デフォルトの名無しさん (ワッチョイ 671d-sUpK) [2020/04/30(Thu) 23:50:21 ID:b9TIw4B40.net]
実務経験1年で月収80万稼げるエンジニアになった理由
https://www.youtube.com/watch?v=DrbbyGsHQic
意識が低いエンジニアこそフリーランスになれ
https://www.youtube.com/watch?v=nSEaAJlgjbQ
フリーランスエンジニアの週3労働ってどんな感じ?
https://www.youtube.com/watch?v=8yjoDCdbzMc
ぼくがスキルのない社畜ならこうやって脱する
https://www.youtube.com/watch?v=aae8xxbUlMM
初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話
https://www.youtube.com/watch?v=U0OCGRVLFsM
プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説
https://www.youtube.com/watch?v=iBOeiSKBIW8
貧乏人こそ社会不適合者
https://www.youtube.com/watch?v=O3BT72BIBJI
元ド貧乏が教える】貧乏を抜け出すための2つの考え方
https://www.youtube.com/watch?v=IRrCgTy3ckc
より良いオファー貰ってるのに転職しないとか何考えてるの?
https://www.youtube.com/watch?v=i0J6uRhlj7o

753 名前:デフォルトの名無しさん [2020/05/01(金) 00:54:45.32 ID:+DHzH5tv0.net]
>>745
この人タイでエッチするため在宅プログラマーになったって言ってるけど
うらやましいな

754 名前:デフォルトの名無しさん (ワッチョイ 67ac-fZS3) mailto:sage [2020/05/01(金) 09:08:51 ID:GU+C/Jnt0.net]
はいつぎの方

755 名前:デフォルトの名無しさん mailto:sage [2020/05/01(金) 10:00:32.66 ID:6b7IUzcd0.net]
Sub Sample2()

Dim Date1 As Date
Dim Date2 As Date
Dim i As Long

Date1 = "2018/1/1"
Date2 = "2018/4/30"

For i = 0 To DateDiff("d", Date1, Date2)

Cells(i + 1, 1) = DateAdd("d", i, Date1)
Exit For
Next i

End Sub

VBA初心者です
上記を実行すると強制終了してしまいます
どうしてなんでしょうか?

756 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/01(金) 10:50:57 ID:eM3SnLnx0.net]
>>748
Exit Forを消す
あと、自分のミスで思った通りにならない時は強制終了とは言わない

757 名前:デフォルトの名無しさん (ワッチョイ bff7-INiV) mailto:sage [2020/05/01(金) 12:14:21 ID:gUWwrcBK0.net]
"4/30/2018"

758 名前:デフォルトの名無しさん (アウアウエー Sa9f-kSwD) [2020/05/01(金) 13:10:21 ID:n1w4ahs6a.net]
#で括ってみては



759 名前:デフォルトの名無しさん (JP 0H9f-r+sk) [2020/05/01(金) 14:08:14 ID:Lu25V/ckH.net]
学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net

物理学 化学 数学 生物学 天文学 地理地学
IT 電子 工学 国語 方言 言語学 など

PS 連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0

760 名前:デフォルトの名無しさん (ワッチョイ 67ac-fZS3) mailto:sage [2020/05/01(金) 14:08:57 ID:GU+C/Jnt0.net]
>>748
回答としては748の通り

なぜこうなるのかわからない場合
 ・ブレークポイントを使ってどういうふうに処理が進んでいるか確認してみ?
 ・気になる行をコメントアウトをしてみる

などをするがよろし

761 名前:デフォルトの名無しさん [2020/05/01(金) 15:46:49.34 ID:O26w7br10.net]
どうして馬鹿ばかり来るのか

762 名前:デフォルトの名無しさん [2020/05/01(金) 15:48:19.31 ID:e9rmxAXgM.net]
>>754
ようこそ!

763 名前: mailto:sage [2020/05/01(金) 16:42:17.98 ID:w4TGDP35H.net]
>>754
Welcome to the real world !!

764 名前:デフォルトの名無しさん (ワッチョイ e7ad-GPK9) mailto:sage [2020/05/01(金) 17:52:33 ID:XmUvZ7vC0.net]
>>748
単純にすべての単語の意味を
把握したらそれだけで分かるよ?

最初の内は意味が分からないまま
コピペプログラミングだろうけど
ずっとそのままだと上達しない

765 名前:デフォルトの名無しさん (ワッチョイ dff0-h83k) mailto:sage [2020/05/02(土) 03:52:34 ID:gsxD2EFS0.net]
皆さんありがとうございます。
初心者から脱出できるように勉強します

766 名前:デフォルトの名無しさん (ワッチョイ df01-lZTE) mailto:sage [2020/05/02(土) 04:16:39 ID:WlPNyw+i0.net]
がんばれ

767 名前:デフォルトの名無しさん (ワッチョイ 67ac-fZS3) mailto:sage [2020/05/02(土) 07:47:42 ID:8I2uZvpu0.net]
会社が休みに入って書き込みが減ったな

768 名前:デフォルトの名無しさん (ワッチョイ a78f-h83k) mailto:sage [2020/05/02(土) 09:40:27 ID:7uDOF2SH0.net]
IE自動操作のマクロで

今まで動いていたが動かなくなる

コードに変化を加えると動く
(スペースでも改行でもコメントでも、プロシージャに変化があると動くようになる)

これはどういうあれなんや



769 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 10:47:09.64 ID:8Sc54whm0.net]
全角のスペースとかキーワード途中での改行とか

無意識にやらかしたんでないの

770 名前:デフォルトの名無しさん (ワッチョイ a7ad-ur4w) [2020/05/02(土) 11:30:23 ID:Z+zF8E0a0.net]
PowerQueryをVBAで使いたい初心者
>>691です。
変数に入れるファイルパスを、テーブルにしておかないと
PowerQueryは読んでくれないんだ。そのテーブル名とか列名も
指定するんだ、へ~、という現状からこの連休中に抜け出したいです。

テレワークからの連休突入前に先輩たちに投げた質問の答えは
「zoom飲み会やるから、入れとけよ。」でした。

771 名前:デフォルトの名無しさん (ワッチョイ dfb5-EVni) mailto:sage [2020/05/02(土) 11:33:04 ID:qrZctUhv0.net]
VBAむずいが努力だわ
昇級幅が大きい時代の残りカスの50代の職場のおっさん達が給料ばっかり高くて
ExcelのSUM関数すらわからないレベルで
電卓で計算してテンキーで手打ち
そんな信じられない存在がいる職場
「俺のやり方があるんだよ!」
とか、心の底から腹が立つ
大手で組合もあるからリストラはされないんだが
そんなやつを駆逐したい
エクセル関数は職場で使うものはだいたい使っておっさん共の10倍は早くやってきたが
更なる憎しみだけが俺のVBA勉強へのモチベーションになってる

772 名前:デフォルトの名無しさん (ワッチョイ 2791-x7Cl) mailto:sage [2020/05/02(土) 11:34:32 ID:jcfx6zQ80.net]
>>761
そもそも、どう動かなくなるんだ?
エラーが出るのか?
Excel再起動で動くようになるか?
PC再起動で動くようになるか?

昔よくあったのがデバックやStopのように勝手に途中で止まるという奴。
F5で続行出来るんだけどまた途中で止まる。
Excelの再起動では治らんがPC再起動で治る。

773 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/02(土) 11:44:58 ID:u3ozWGyy0.net]
>>761
Win10ではIEの動作が変わったのでVBAからコントロールするのがかなり大変になった

うまく動かない時は、ブラウザのキャッシュとかクッキーとか、WEBサーバの応答のタイミングとか調べる
変更しなくても時間を置けば動かないか、Excelを再起動したらどうか、パケットモニターとか調べた?

774 名前:デフォルトの名無しさん (アウアウカー Sa3b-QanA) [2020/05/02(土) 11:52:59 ID:be7YjfFea.net]
初めてのマクロでやりたいことはほぼ出来たのですが、新規ブックをコピー元のマクロごとコピーする方法が分かりません
xlsmで保存することは出来るのですが、どうもマクロの参照先がコピー元になっているらしく、新規ブックからマクロを実行するとコピー元のファイルをわざわざ開く形になってしまっています
マクロごとコピーする方法があればご教示ください

775 名前:デフォルトの名無しさん (ワッチョイ 2791-x7Cl) mailto:sage [2020/05/02(土) 11:53:28 ID:jcfx6zQ80.net]
>>763
初心者がPowerQuery使うの?
その前にやることがあると思うんだが。

まず、テキストファイルを扱えるようになりなよ。
自在にテキストファイルを扱えるようになれば、どんな形式のCSVでも関係無い。
セル内改行も、そのCSVのフォーマットが分かってないのが原因。
普通はデ−タに改行が入ってるならレコード間の改行と区別する何かがある筈。
1レコードの項目数が必ず決まっている(1レコードのカンマの数が決まっている)とか、そのテキストデ―タは必ずダブルクォーテーションで挟まれており、データ内の改行はダブルクォーテーションのInとOutの間のどこかにあるとか。

もちろんPowerQueryでも良いんだけど、それでたまたま解決出来そうだから飛び付くのは良くない。
こんなもの基本的な処理の組み合わせで出来るんだから、PowerQueryで有利な何かも無いのに無理矢理使おうとしてるように見える。

776 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 12:25:11.14 ID:E33c3GVR0.net]
>>767
自分ではやったことないけどモジュールをそのままコピーするなら
officetanaka.net/excel/vba/vbe/07.htm#sample04
こういう方法じゃないかな

自分でやったことがあるのは
https://oshiete.goo.ne.jp/qa/756026.html
こちらの方法で、コードを一行ずつ書いていくことになります

ほんとにまるごとコピーでいいなら上の方法でしょうけど、thisworkbookとか
activeworkbookとか場合によって挙動が変わるような内容なら下の方法
じゃないかな

777 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 12:32:45.18 ID:u3ozWGyy0.net]
>>767
モジュールのエクスポートとインポートでやってみるとか
https://jizilog.com/vba-modadd

778 名前:デフォルトの名無しさん (アウアウカー Sa3b-QanA) [2020/05/02(土) 13:09:24 ID:me7NM96ka.net]
>>769
>>770
ありがとうございます
お恥ずかしながら、今更ながらアドインと個人用マクロブックの存在を知りました
マクロの数も多いので、毎回記述する方法は重くなりそうですし、インポートも考えたのですが、管理するのが大変そうだと躊躇していました
とりあえず、個人用マクロブックで一括管理してやってみようと思います



779 名前:デフォルトの名無しさん (スッップ Sdff-x7Cl) mailto:sage [2020/05/02(土) 15:03:15 ID:fjHWXn6td.net]
>>769
これは、セキュリティ上の危険を承知するなら良いんだけどね。
今のExcelはデフォルトで動かないように設定されてるよ。

動作原理はマクロウィルスと全く同じなんで。

780 名前:デフォルトの名無しさん (ワッチョイ dfea-9YRN) mailto:sage [2020/05/02(土) 15:03:21 ID:HkfyT0U40.net]
>>771
マクロブックだと、最後の1ファイルを閉じてもアプリ画面が残っちゃう。
アドインだとこれを回避できる。

781 名前:デフォルトの名無しさん (ワッチョイ dfea-9YRN) mailto:sage [2020/05/02(土) 15:06:50 ID:HkfyT0U40.net]
>>772
そそ。D&Dでパワポにノートを読み上げるマクロをぶっ込めるvbs作ったんだけど、よく考えるとちょつと怖くなった。

782 名前:デフォルトの名無しさん [2020/05/02(土) 15:24:24.68 ID:Z+zF8E0a0.net]
>>768
あ、ありがとうございます。
テキストファイルから…。
連休の課題にします!

783 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 15:37:35.14 ID:lt4kIJ5o0.net]
>>768
VBAのスレで言うのもなんだが
PowerQueryの前にやることがVBAなのかと

784 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 15:54:13.09 ID:WuBkO5o5x.net]
>>763
テーブルとしての構造化参照が不要なら別にテーブルにしなくても「空のクエリ」でリテラル定数を返す接続クエリを作るなり、パラメータを登録するなりすれば良い
詳細エディタに
= "テーブル名"
って一行書けば"テーブル名"を返す定数クエリが出来上がる

あと、Letの前行に
(path as text, table_name as text, column_name as text)=>
とか追加すれば、path とtable_nameとcolumn_nameという三つのtext型の引数をダイアログ入力でクエリに渡せるようになるので、クエリ式の側をソース=Csv.Document(File.Contents(path))みたいに書けば良い。


どうしてもVBAからPower Queryをいじりたいなら
Workbook.Queries(Index).Formulaでクエリの式が読み書きできるので、Replaceを使うなりして好きにいじったらいいんじゃないの

785 名前:デフォルトの名無しさん (アウアウカー Sa3b-QanA) [2020/05/02(土) 16:19:14 ID:be7YjfFea.net]
>>773
なるほど、それはちょっと嫌かも
この際だからアドインも試してみることにします

786 名前:デフォルトの名無しさん [2020/05/02(土) 17:01:28.47 ID:be7YjfFea.net]
何度もすみません
アドインを通常のマクロのように、図形などで作ったボタンに割り当てることはできないのでしょうか?

787 名前:デフォルトの名無しさん (ワッチョイ 677f-v3HX) mailto:sage [2020/05/02(土) 19:33:07 ID:I/r+DzJx0.net]
デバッグ中からリセットをかける際に特定の処理をさせるようなイベントプロシージャって無いでしょうか

788 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 21:25:13.04 ID:fjHWXn6td.net]
>>780
それは俺も知りたいね。
リセットすると確実にExcelが落ちるプログラムを安全に終了したい。



789 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 21:28:27.20 ID:fjHWXn6td.net]
>>779
アドインの場合、メインは別のブックになるわけだからアドインのシートとかは表示されないという基本は分かってる?

それが分かっていれば図形等で作ったボタンを配置する場所もないと分かる筈。

普通はメニュー(リボン)に作る。

790 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 22:09:54.71 ID:7uDOF2SH0.net]
>>765
>>766

数か月前の事なので返ってくるエラーは忘れたけど
どこかの部分で止まるのではなく、開始時に起きるエラーだったと思う
そのファイルを複数のPCで試したけど全てで同じ現象が起こる

で、subプロシージャのコードを一部変更して実行すると動く

コードの変更は何でも良くて
改行、何も書いていない行にスペース追加、コメント追加、コードを消して同じコードを書く
とにかく変化があれば再起動も何も必要なく正常に動く
変更後上書き保存してからは同じエラーは起こっていない

今は問題なく動いてるから困っては無いんだけど
あれは何だったのかなと思った

791 名前:デフォルトの名無しさん (ワッチョイ 67ac-fZS3) mailto:sage [2020/05/02(土) 22:19:21 ID:8I2uZvpu0.net]
はあ、そうですか。しらんがな

792 名前:デフォルトの名無しさん (ワッチョイ 7fda-ts7H) mailto:sage [2020/05/02(土) 22:37:34 ID:zUyEitTf0.net]
>>761
俺もさんざん悩まされたが、ByVal/ByRef問わず、関数にオブジェクト渡すのやめたら改善したわ。
何でもかんでもパブリックにすんなアホって言われてたから、パブリックという発想が中々でなかったが。

>>765
俺の場合は何の音沙汰もなく強制終了だな。
エラーが出ないし、PCによっては動くし、改行いれるだけで変わることもあるから、
どこがおかしいのか全然わからんかった。
互換表示とか保護モードの有無も関係ないし。

793 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 22:45:55.01 ID:zUyEitTf0.net]
多分、

Readystateコンプしてるのにエラーでるな〜
↓こうしちゃえ

On Error Resume Next
Do
 IEにカキコ
 Sleep 1000
Loop While なんとか
On Error Goto 0

長くて面倒くせえなぁ〜
関数化しちゃえ

で、オブジェクトを関数に渡して嵌る罠なんだと思う。

794 名前:デフォルトの名無しさん (アメ MM6b-p7s+) mailto:sage [2020/05/02(土) 23:09:24 ID:FzDABaHmM.net]
>>783
それ、IEと関係なく、Excelの更新が原因でvba関係にエラー起きてるやつでは?
ファイル開くときに「エラーがあります、可能な範囲で修正しますか」みたいなアラートがでて、はいを押すとコードが全削除される。

795 名前:デフォルトの名無しさん (ワッチョイ dfb5-EVni) mailto:sage [2020/05/02(土) 23:36:58 ID:qrZctUhv0.net]
教えてくださいまし。。
画像のように日によって参加人数も競技した数も違うものを
受付した人と競技の範囲の値のみ
隣のシートに貼り付けるようにしたいですが
エクセル関数のエラーや未計算が都合上どうしても残ってしまい残ってうまく行かず…
https://i.imgur.com/Sd2Afas.jpg
https://i.imgur.com/MfnIQSU.jpg
https://i.imgur.com/lEQTEIe.jpg

受付した人の数字が空白になるまでは空白になるまで、競技も空白になるまで
その範囲のみをコピーというか可能でしょうか

796 名前:デフォルトの名無しさん (ワッチョイ dfb5-EVni) mailto:sage [2020/05/02(土) 23:39:12 ID:qrZctUhv0.net]
Sub 貼り付け()
Dim gy As Long
Dim re As Long Dim
Dim Tensu As String
Dim Kekka As String

Sheets(Tensu) = "点数"
Sheets() = "結果シート"

Sheets(Tensu).Select
With Range("C5")
gy = .End(xlDown).Row
If .Offset(1).Value = "" Then
gy = .Row re = .End(xlToRight).Column
If .Offset(, 1).Value = "" Then
re = .Column With .Resize(gy - .Row + 1, re - .Column + 1)
Sheets(Tensu).Select Range("H8").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With End With
End Sub

これで作ってみたのですがやはり関数エラーが
邪魔してエラーになります
行も列も両方を空白までループして貼り付け
むずぃす

797 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 23:46:04.45 ID:zUyEitTf0.net]
画像から式を逆算するクイズみたいになっとる。

798 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 23:48:07.49 ID:TR3WF5Jt0.net]
人、それをデバッグと呼ぶ



799 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 23:48:58.13 ID:zUyEitTf0.net]
エラーってそっちのエラーかい!

If IsError(セルの値) = False Then の時だけ実行とか。

800 名前:デフォルトの名無しさん mailto:sage [2020/05/02(土) 23:51:07.35 ID:zUyEitTf0.net]
それか、ValueじゃなくてTextでエラー回避。

801 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/03(日) 00:01:44 ID:fR4zqWYb0.net]
>>789
全体的にめちゃくちゃで、それじゃ関数エラー以前にまったく動かないはずなんだけど、本当にそれで途中までは動いてるの?
スマホでポチポチ書き写すんじゃなくて、できるだけPCでそのままコピペしてくれない?

802 名前:デフォルトの名無しさん (ワッチョイ dfb5-EVni) mailto:sage [2020/05/03(日) 00:26:05 ID:EGR1WLcw0.net]
>>794
Sub test()
Dim gy As Long, re As Long
With Range("C5") gy = .End(xlDown).Row
If .Offset(1).Value = "" Then gy = .Row
cl = .End(xlToRight).Column
If .Offset(, 1).Value = "" Then re = .Column With .Resize(gy - .Row + 1, re - .Column + 1) Range("AA5").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End With
End Sub

元々作これで動いたのを確認しやしたが
無力過ぎて悔しいっす
そもそもエクセル関数の方のエラーが出ないようにif関数で空白の場合はセルも空白にしようかと思ったけどそもそも他部署の管轄
俺の圧倒的力の無さですわこりゃ

803 名前:デフォルトの名無しさん (ワッチョイ dfb5-EVni) mailto:sage [2020/05/03(日) 00:31:44 ID:EGR1WLcw0.net]
というか完全に圧倒的勘違いでした

動いたと思っていざ使おうとしたら
他部署からのデータが画像のように
参加してない選手のところにセルにエラーがついてくる仕様なのに気付いて動かなかった
これが正解です
頭おかしくなってますわ

804 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/03(日) 00:38:44 ID:fR4zqWYb0.net]
>>795
ワークシートの数式を消しちゃっていいんなら、エラーの出てるセルを全部空白にするのは簡単
Sub エラー全部消す()
 Dim c As Range
 For Each c In ActiveSheet.UsedRange
  If IsError(c.Value) Then c = ""
 Next
End Sub

805 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/03(日) 01:01:50 ID:fR4zqWYb0.net]
>>796
コピーしたいのは、赤枠の範囲でいいの?
https://i.imgur.com/hJcIMrT.jpg

806 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/03(日) 01:03:01 ID:fR4zqWYb0.net]
それとも選手名も必要?

807 名前:デフォルトの名無しさん (ワッチョイ dfb5-EVni) mailto:sage [2020/05/03(日) 01:37:52 ID:EGR1WLcw0.net]
>>797
教えてくれてありがとうございやす
ただシート内の別のところにも数式待ちのエラーのセルがあって俺の管轄じゃないので全てのエラーを消すわけにはいかず…範囲指定するスキルもなく…

>>798
>>799
完全にその赤枠のところの「値」のみをコピーしたいです

それが毎回、選手の数と競技の数が違う
という感じです

選手Cが空白なのに選手Dは数値が入る
ということはないので
受付の列が空白になるまでコピーを
ループ?とか考えながら挫折してます

808 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 01:46:13.78 ID:EGR1WLcw0.net]
受付の行が空白のセルになるまでループしつつ
競技の列が空白になるまでループ??
んん?違うか

GWになのにExcel開いてずっとマクロで悩むとは…とんだステイホームですわ



809 名前:デフォルトの名無しさん (ワッチョイ 877c-mIzA) mailto:sage [2020/05/03(日) 01:55:50 ID:yO9oP2CW0.net]
ここに書かずなぜ動かして試さない…

810 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/03(日) 02:10:58 ID:fR4zqWYb0.net]
>>800
はい、できたよ

Sub 数字だけコピー()
  Dim rr As Long
  Dim cc As Long
  Dim dat As Variant
  rr = Cells(Rows.Count, 3).End(xlUp).Row - 4 '高さを求める
  cc = Cells(5, Columns.Count).End(xlToLeft).Column - 2 '幅を求める
  dat = Range("C5").Resize(rr, cc).Value 'データを変数に入れる
  Range("AA5").Resize(rr, cc).Value = dat 'コピーする
End Sub

811 名前:デフォルトの名無しさん (ワッチョイ c7ce-ts7H) mailto:sage [2020/05/03(日) 02:15:53 ID:fR4zqWYb0.net]
ごめん
ちょっとだけ修正させて

Sub 数字だけコピー()
  Dim rr As Long
  Dim cc As Long
  Dim dat As Variant
  rr = Range("C4").End(xlDown).Row - 4 '高さを求める
  cc = Range("B5").End(xlToRight).Column - 2 '幅を求める
  dat = Range("C5").Resize(rr, cc).Value 'データを変数に入れる
  Range("AA5").Resize(rr, cc).Value = dat 'コピーする
End Sub

812 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 03:59:51.25 ID:PK0PPm520.net]
この程度のものを人に聞かなきゃできないようじゃ先が思いやられる
これで職場の50代批判できるのかと・・・・
しかも最初のこれ>>788
もう少し日本語の説明能力上げたほうがいいんじゃないか
君何度もここでいろんな質問してるよね?質問の仕方からして酷すぎる

説明の例1:
この画像で言えばC5からE13の範囲を別シートにコピーしたいです
https://i.imgur.com/Sd2Afas.jpg
コピーしたい範囲は変化します。例えばこの場合はC5からI9までをコピーしたいです
i.imgur.com/MfnIQSU.jpg

説明の例2:
こういう画像をペイントで作る
https://i.imgur.com/u9Vhnj1.jpg




はぁ・・・おれ深夜に何やってんだか・・・

813 名前:デフォルトの名無しさん (ワッチョイ a7ad-ur4w) [2020/05/03(日) 09:15:39 ID:iPr/hZRI0.net]
>>777
ご助言ありがとうございます!
教えていたことの意味を調べながら勉強します。

ちなみにうちの職場では55歳のオバハンが独学で書いてるVBA
が一番「きれい」だそうで。教科書通りで、整理整頓されてる感じで
非エンジニアには優しいんです。(簡単なものしか作らない人ですけど。)
でも「リーダブルコード」とか「VBA実践のためのなんちゃら」とか
読んで勉強してるの見かけたので、心がけは見習いたいです。

814 名前:デフォルトの名無しさん (ワッチョイ 87e6-ts7H) mailto:sage [2020/05/03(日) 09:19:57 ID:6v/wuiGx0.net]
> Sheets(Tensu) = "点数"
> Sheets() = "結果シート"

きれいだとか汚いとかいう以前に読む気が失せるな
入門書買ったとか言ってなかったっけ?

815 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 09:20:36.28 ID:2hdRjZho0.net]
>>806
>独学で書いてるVBAが一番「きれい」
>教科書通りで、整理整頓
それはあるかもな

プログラマだとなまじ他言語の知識があるために
トリッキーなことやりだす奴が一定数いるからな
効率が良い面もあるだろうが他人が理解しにくい

816 名前:デフォルトの名無しさん (ワッチョイ 87e6-ts7H) mailto:sage [2020/05/03(日) 09:35:40 ID:6v/wuiGx0.net]
>>804
生血プログラマーなら1行にするべきである

817 名前:デフォルトの名無しさん (ワッチョイ 7fda-ts7H) mailto:sage [2020/05/03(日) 10:26:05 ID:9LS/Ekj10.net]
ああ、

If a = True Then
a = False
ElseIf a = False Then
a = True
End If

みたいなやつか。
大っ嫌いだけどな。

818 名前:デフォルトの名無しさん (ワッチョイ c7da-ts7H) mailto:sage [2020/05/03(日) 13:07:08 ID:T/wh1/tE0.net]
a = Not(a)
でいいんじゃね



819 名前:デフォルトの名無しさん (ワッチョイ 67ac-fZS3) mailto:sage [2020/05/03(日) 13:43:00 ID:AWBCl49n0.net]
エスパースレと化してる

820 名前:デフォルトの名無しさん (ワッチョイ bf2f-WRor) mailto:sage [2020/05/03(日) 14:21:40 ID:jHKSsTzt0.net]
>>811
そもそも>>810が何を言いたかったのかわからんが
それaがBooleanじゃないと同じじゃないからな

821 名前:デフォルトの名無しさん (ワッチョイ a778-NLJ6) mailto:sage [2020/05/03(日) 16:23:21 ID:7ZZm2K4r0.net]
たしかにそうだ

822 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 18:57:16.84 ID:hVYH2JxT0.net]
うん、>>810が何を言いたいのか不明瞭だな。
あのIf文も自分は嫌いじゃ無い。
見てすぐ分かるんで。

長くても短くてもすぐ分かれば問題なし。
a=not aでも別に良い。

823 名前:デフォルトの名無しさん (ドコグロ MM9f-4Orb) mailto:sage [2020/05/03(日) 20:02:39 ID:GBCMW2mVM.net]
If a = True Then
の時点で嫌い

824 名前:デフォルトの名無しさん (ワッチョイ a75f-rvxR) mailto:sage [2020/05/03(日) 20:33:25 ID:INbjbW0w0.net]
If a Then は気持ち悪いわ

825 名前:デフォルトの名無しさん (ワッチョイ 7fda-ts7H) mailto:sage [2020/05/03(日) 20:35:39 ID:9LS/Ekj10.net]
>>815
オバハンが独学で書いてる綺麗なコードって、
a=not aを>>810みたいに書いてるやつかなと思って。

826 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 20:41:41.89 ID:jHKSsTzt0.net]
俺はBooleanにたいして= Trueは大概は冗長に感じるけどな
VBAは型がゆるいからなぁ
If a Then は気持ち悪いが、これは変数名が悪い

827 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 22:08:11.47 ID:dDcWYHiB0.net]
>>808
perl で組んだテトリスだったかな。あれ見たときはぶったまげた。

元々ワンライナーをやりやすい言語とは言え、あれはもう
何が何やらわからない世界だった。どんだけ頭いいんだよと。

でも、「こんなの理解できないの?ふ〜ん(にやにや)」みたいな
のは生産性的には駄目だよね。


美しさをトリッキーさに見出すか可読性に見出すかは人それぞれ
だけど、自分よりスキルが下の他人に保守させるとか、未来の自
分が保守しないといけないかもとかなら冗長性持ってるほうがいい
かも。

いちばん大事なのは懇切丁寧なコメントだろうけど。

828 名前:デフォルトの名無しさん (ワッチョイ 878f-ts7H) mailto:sage [2020/05/03(日) 22:21:26 ID:dDcWYHiB0.net]
>>806
> ちなみにうちの職場では55歳のオバハンが独学で書いてるVBA
> が一番「きれい」だそうで。教科書通りで、整理整頓されてる感じで
> 非エンジニアには優しいんです。(簡単なものしか作らない人ですけど。)
> でも「リーダブルコード」とか「VBA実践のためのなんちゃら」とか
> 読んで勉強してるの見かけたので、心がけは見習いたいです。

あえて長文引用させてもらったけど、あんた程度の人間がなんで
その55歳の女性を貶めてるの?



829 名前:デフォルトの名無しさん (ワッチョイ 2791-x7Cl) mailto:sage [2020/05/03(日) 22:55:28 ID:hVYH2JxT0.net]
>>818
いや、想像はついてた。
大嫌いというのが分からんかった。

830 名前:デフォルトの名無しさん (JP 0H8f-Ng5p) mailto:sage [2020/05/03(日) 22:57:44 ID:8sSb2t20H.net]
まともなプログラマなら周りのレベルに合わせて読みやすいコードを書けるよ
VBAの仕事なんかやってる時点でその程度のレベルなんだから仕方ない

831 名前:デフォルトの名無しさん (ワッチョイ 2791-x7Cl) mailto:sage [2020/05/03(日) 22:58:39 ID:hVYH2JxT0.net]
>>820
コメントもたくさんあれば良いというもんじゃない。

Dim blFlg AsBoolean 'フラグ

こんなコメントはアホ。
フラグかどうかは名前と型で分かってる。
残すべきはどういうフラグかだ。

832 名前:デフォルトの名無しさん (ワッチョイ 878f-ts7H) mailto:sage [2020/05/03(日) 23:00:42 ID:dDcWYHiB0.net]
>>824
それは確かにコメントっつうより、「ノイズ」だなw

833 名前:デフォルトの名無しさん (ワッチョイ 2791-x7Cl) mailto:sage [2020/05/03(日) 23:03:28 ID:hVYH2JxT0.net]
>>823
まともなプログラマなら周りのレベルにあわせて読みやすいコードをかける。
お前とは違ってなw

834 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 23:06:45.24 ID:oMB0K2Jka.net]
>>824
こんな奴いるのw

835 名前:デフォルトの名無しさん mailto:sage [2020/05/03(日) 23:07:47.50 ID:hVYH2JxT0.net]
>>825
意外に近いのはある。
コメントより元々の変数名を伝わるものにするのが第一義。
それで伝わりにくい時にコメントで補足する。

836 名前:デフォルトの名無しさん (ワッチョイ 878f-ts7H) mailto:sage [2020/05/03(日) 23:13:29 ID:dDcWYHiB0.net]
ただ、伝わりやすい変数名ってのが読む方の英語の素養に
大きく左右されちゃう不幸が。

TOEICで600くらい(英語の得意な高校生あたり)を想定するのが
いいかなあ。

837 名前:デフォルトの名無しさん (ワッチョイ 2791-x7Cl) mailto:sage [2020/05/03(日) 23:19:40 ID:hVYH2JxT0.net]
Cプログラミング診断室の第三章の中盤に出てくるフラグの所に似たようなのが出てくる。
言語は違うが読んどくと良い。

www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.3.7.html

838 名前:デフォルトの名無しさん (ワッチョイ df02-mIzA) mailto:sage [2020/05/04(月) 01:56:50 ID:6MBl5GGH0.net]
ここのスレ見てると、共同で保守してるのに細かい仕様書作ってない感じ
VBA使いって連携取るの苦手だろ



839 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 02:26:38.20 ID:5comiU6qd.net]
自分だけ楽するために片手間に作ったやつがいつのまにか広まって、ドキュメントなんかもちろん作ってなくて、最初に作った人は異動しちゃって、みたいなことVBAではよくある

840 名前:デフォルトの名無しさん (ワッチョイ e794-C/EQ) [2020/05/04(月) 04:29:56 ID:eaaQNpcs0.net]
VBAは事務員のオバさんが作る程度のオモチャ
仕様書とか本気で言ってんの?
キモいわ

841 名前:デフォルトの名無しさん (ワッチョイ bf12-h83k) mailto:sage [2020/05/04(月) 06:18:26 ID:XD3JqXFe0.net]
仕様書を書くような立場で仕事をしたことない人は黙ってな

842 名前:デフォルトの名無しさん (ワッチョイ c7da-ts7H) mailto:sage [2020/05/04(月) 08:36:53 ID:NmZgEDtP0.net]
会社のファイルで仕様書作ってあげてもいいんだけど今の職場では上司が理解できないからあえて作らないでいる

843 名前:デフォルトの名無しさん (ワッチョイ c7da-ts7H) mailto:sage [2020/05/04(月) 08:37:36 ID:NmZgEDtP0.net]
俺は832ではない

844 名前:デフォルトの名無しさん (ドコグロ MM9f-4Orb) mailto:sage [2020/05/04(月) 09:29:50 ID:eyf9VoYQM.net]
全社に配布するようなものは仕様書も作るしテストもやるけど、自分とか課内で使うようなツールだと作りっぱだな
別に他の言語でも変わらんと思うが

845 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 09:55:22.79 ID:oqIKeiQj0.net]
最近よく来る馬鹿どもが仕様書作れると思うのか?

846 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 10:02:07.63 ID:cVQIuVcH0.net]
共同開発やドキュメントが必要になるレベルのプロジェクトには別の言語を使うのが普通
VBAスレで仕様書の話題はスレ違い

847 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 10:28:02.39 ID:ESbXk+mE0.net]
はいつぎの方

848 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 10:39:56.70 ID:EYE1xMNJ0.net]
うちの職場じゃボタン押すことぐらいしか出来ないような連中ばかりだから
仕様書どころかマニュアル作っても1割ぐらいしか理解してもらえないだろうな
目の前で説明しても少し込み入った設定になると覚える気一切ないしな
俺がいなくなったら終わりと思ってる
コメントすら残してない



849 名前:デフォルトの名無しさん (ワッチョイ a7ad-ur4w) [2020/05/04(月) 11:03:15 ID:mKy38ERH0.net]
こんにちは。
このスレを見て勉強しようと思って色々読んでは、たいてい
なんの話をしているのかもわからない、プログラマではない層の者です。
上の方で、
>>810
If a = True Then 
a = False
ElseIf a = False Then
a = True
End If
みたいな書き方っていやだね。
>>811
a = Not(a)  でいいんじゃ?

という会話があったのですが、>>810 って
どんな時に使うのかさっぱり???でした。
どなたか暇つぶしにでもご教示いただけませんでしょうか。

850 名前:デフォルトの名無しさん (ワッチョイ a78e-MvRk) mailto:sage [2020/05/04(月) 11:58:39 ID:oqIKeiQj0.net]
>>842
死ね

851 名前:デフォルトの名無しさん (ワッチョイ 877c-mIzA) mailto:sage [2020/05/04(月) 11:59:42 ID:zFV2kJYS0.net]
ドキュメントが必要かどうかに言語は関係ない
プロジェクトの内容次第

852 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 12:35:48.74 ID:NmZgEDtP0.net]
>>842
例えばテレビのリモコンの電源ボタンとか消音ボタンのような使い方をするイメージ

853 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 12:43:46.28 ID:RsDc9cGOM.net]
>>839
お前の所の普通が世間一般の普通じゃないだけが

854 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 12:48:54.23 ID:cVQIuVcH0.net]
>>842
誰も使わない悪い例を書いただけ

855 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 13:16:33.95 ID:c8yfA7Q3M.net]
>>846
お前いつも質問スレに無関係な書き込みばっかだな
どうせPC-VANやってた老害だろ

856 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 13:17:26.32 ID:n6lRLUl70.net]
If a = True Then

誰にでもわかる書き方でとても良いと思う

今VBAを勉強する人は本職プログラマではなく
別に仕事があって、その効率化の為に学んでる人が主でしょう

そしてそれを非プログラマ同士で共有するのなら
どの本にでも書いてある書き方の方が望ましい
匿名の名人様の言葉に右往左往する必要はないよ

857 名前:デフォルトの名無しさん (ワッチョイ df01-4Orb) mailto:sage [2020/05/04(月) 13:43:10 ID:/ITc8kQd0.net]
>>848
自己紹介かよww

858 名前:デフォルトの名無しさん (ワッチョイ 7fda-ts7H) mailto:sage [2020/05/04(月) 14:09:51 ID:9S16/cFq0.net]
Debug.Print xml.getElementsByTagName("タグ名").Item(0).Text

Microsoft XML, v3.0 参照 → OK
Microsoft XML, v6.0 参照 → エラー

何でやねん。



859 名前:デフォルトの名無しさん (ワッチョイ 2791-x7Cl) mailto:sage [2020/05/04(月) 14:14:20 ID:r232eNWS0.net]
>>842
卜グルボタンとかチェックボックスのようなオンオフするようなものを変数で管理しようとした時に、変数がTrueならFalseに設定し、FalseならTrueに設定する処理を書いている。

最初のIf文の方は英文が分かれば簡単に理解出来る。
Notを使う方はTrue/Falseだから変数を変数自身と反対にすることで実現してる。

860 名前:デフォルトの名無しさん (ワッチョイ 7fdd-ts7H) mailto:sage [2020/05/04(月) 14:35:44 ID:m3H0OQVZ0.net]
検索Dialogの検索場所(WithIn)をVBAから切り替えるアイデアをお持ちの方いたら教えていただけないでしょうか。
全シートから検索するのが目的ではなく、ブック全体検索後に何気に範囲指定置換を実施して引き起こされる惨状を回避したく。
(または別視点による工夫でもOKです)
詳しい方、よろしくお願いします。

861 名前:デフォルトの名無しさん (ワッチョイ 67ac-fZS3) mailto:sage [2020/05/04(月) 15:43:06 ID:ESbXk+mE0.net]
>>853
意味不明な点が多すぎる。
>ブック全体検索後に何気に範囲指定置換を実施して
 検索と置換ダイアログでは検索、置換は違うタブだから操作ミスは起きずらいが、
 そこまでしなきゃならないのか

>引き起こされる惨状を回避したく。
 惨状って具体的になにか

そもそも惨状とやらが起きるのは、GUIの話なのかVBAの話なのか

862 名前:デフォルトの名無しさん (スップ Sd7f-C/EQ) [2020/05/04(月) 15:44:13 ID:gO9XNStOd.net]
今からVBAなんて覚える必要は全くない

863 名前:デフォルトの名無しさん (ワッチョイ a7ad-ur4w) [2020/05/04(月) 18:17:24 ID:mKy38ERH0.net]
841です。
丁寧な解説、みなさんありがとうございました。
勉強になりました。

864 名前:デフォルトの名無しさん (ワッチョイ 67f9-qVEi) [2020/05/04(月) 19:20:35 ID:V2+TGFiQ0.net]
>>856
アンカーも書けず全角で数字を書くよな馬鹿は死ね

865 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 19:40:04.11 ID:m3H0OQVZ0.net]
>>854
説明が不足していました。

検索と置換のタブはパラメータ設定の記憶が共通となっております。
ブック全体検索を行った後に範囲を選択して範囲内置換を実施しようとCtrl+Hを押します。
すると前回検索時の "検索場所=ブック"が活きている状態になっております。
気づかずに実施すると全シートの指定文字列が置換されてデータが破壊されてしまいます。
コロン ":" でも削除置換しようものなら全ての時刻書式が破壊されます。
お試しください。

これを防ぐには、ブック内検索を実施した際は引き続きシート内検索を実施して設定を戻しておく必要があります。
普段ブック内検索ってあまり使わないのでこんな時に限って忘れてしまいます。
VBAはどうなっているかというと、.Find .Replace共に、WithInパラメータが存在しないため引数指定できず、直前のUI操作依存となるわけです。
自動化された置換処理があったりすると、事故が起こるわけです。

本件、GGってよく捜してみたら同様の悩みに対するQAありました。

 Range("A1").Find("*")

この1行を実施するだけで検索場所をシートに戻せるようです。
逆に検索場所をブックにする方法を探しているところです。

ご存じの方おられましたら教えてください。

866 名前:デフォルトの名無しさん (ワッチョイ 6741-eET6) mailto:sage [2020/05/04(月) 20:21:19 ID:2XIJsT+F0.net]
.OpenTextで開いたテキストファイルを操作したいのですがやり方がわからなくて困っています。
拡張子CSVなら通常のエクセルワークシートと同様に扱えますが、テキストファイルは無理なのでしょうか?
Workbooks.Countは開いたテキストファイルの分増えているようですが…
ご教示お願いいたします。

867 名前:デフォルトの名無しさん (スフッ Sdff-rvxR) mailto:sage [2020/05/04(月) 20:24:42 ID:mUlUr63md.net]
テキストファイルの中身はどのようなフォーマットで、どう操作したいのですか?

868 名前:デフォルトの名無しさん (ワッチョイ 87e6-aR2J) [2020/05/04(月) 20:40:40 ID:c199Arvf0.net]
1セルに1文字づつならExcelチックに楽しめそうだな

知らんけど



869 名前:デフォルトの名無しさん [2020/05/04(月) 20:56:39.11 ID:oqIKeiQj0.net]
次から次へと馬鹿が来る

870 名前:853 (ワッチョイ 67ac-ts7H) mailto:sage [2020/05/04(月) 21:05:25 ID:ESbXk+mE0.net]
>>858
まず、問題としてる事象は提示している方法で解決するんだよね
そのブック開いたときとか操作したときに実行すればいい

>「ブック全体検索を行った後」に「範囲を選択」して「範囲内置換を実施」(ブック全体と指定しているオプションを開いたまま)
 → その悪意に満ちた行為のみを想定するの?
   検索ダイアログのオプション設定は起動中のExcelアプリ(プロセス)に記憶されるから、
   Excelアプリを開いたまま同じPCで同様の操作をしないと再現しないはず

>気づかずに実施すると全シートの指定文字列が置換されてデータが破壊されてしまいます。
 → さっきの操作をすると検索オプションは開いてるはずだけど、
   それでも気付かずファイル保存するっていう悪意ry
   GUI操作->GUI操作で出る問題なら、運用で禁止するか保護するか、影響に基づいて運用システム自体を見直す

>逆に検索場所をブックにする方法を探しているところです。
 → 問題としてる事象の解決は自分で提示しているようだけど、
   逆に引き起こしたいってことは、単にやりたいから?
   VBAで置換するなら別に全シートをReplace擦ればいいだけだし
   GUIでブックにしたいならそう操作すればいいけど、何が必要なの

検索と置換ダイアログの操作はCommandBars.dialogsとかExecuteMsoとかで表示は出来る
ウィンドウ操作にしても他のダイアログ操作と似たようなもんだろう(APIが多分必要)

GUIとVBAをごっちゃに対応するから要らない悩みを抱える
運用やコストを考えない妄想の機能なら、それこそ趣味でアドインでも作ればいい

871 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 21:24:09.39 ID:2XIJsT+F0.net]
説明足らずで申し訳ありません。
カンマ区切りのテキストファイルに対してOpenTextを使います。これでカンマごとにセルに値が分けらたエクセルブックが開きます。
このブックのシートを通常のエクセルシートと同様に、例えばRange("A1").Activateとしたいのですが、ブックをどうやって指定すればいいのでしょうか?

以下の方法を試しましたがうまくいきません。
元々開いているブックが一つのとき、テキストファイルはWorkbooks.CountWorkbook=2として開かれることを確認。このときWorkbooks(2)をVariant型の変数に代入しようとしました。

Set myBook = Workbooks(2)

ウォッチ式でmyBookの値を確認すると
型 Variant/Object
値 <変数なし>
となり値が取得できません。

テキストファイルの拡張子をCSVに変更すると問題なく値が取得できます。

すみませんがよろしくお願いいたします。

872 名前:デフォルトの名無しさん (ワッチョイ 7fdd-ts7H) mailto:sage [2020/05/04(月) 21:39:32 ID:m3H0OQVZ0.net]
>>863
ご回答ありがとうございます。

>オプションを開いたまま
これの意味がわからないですが、ダイアログを開いたままという意味なら、閉じても記憶は維持します。
全体検索実施と範囲選択実施は一連の動作じゃないです。
例えば複数のファイルを開いて作業していて、全体検索を実施したファイルは既に1時間前に閉じていたとしても設定は維持されます。
これを悪意と言われましても、、
まあ、この点は前述のコードをシートイベント等に挟むことで防げそうです。
(設置Bookに限られるかな?まあ、良い方法を考えてみます)

>それでも気づかずに
キーボード主体でマウスはほぼ使わない派なので、範囲選択→ダイアログ開く→検索語、置換語入力→Enterの動作は
一連の操作で、ガッ、ガガガッで感じでやっちゃうのでダイアログのパラメータいちいち確認しないんですよね。
ちょっと落ち着けよって話なんでしょうけど。

>問題としている事象の解決は自分で提示しているようだけど、
最初に掲げた命題が "VBAで検索場所(WithIn)を切り替えたい" だったので逆の操作もできれば知りたいという程度です。
破壊リスクは回避できそうですが、例えば範囲が”シート"の状態からVBAで"ブック"に変更して全置換も可能なのかな、という疑問です。
結論としては通常の方法では出来なそうですね。
Worksheets.Select: Cells.Select を実行すれば、シートをForで回さなくても
 Selection.Replace できることもわかりましたのでこれで解決としたいと思います。

>GUIとVBAをごっちゃに対応するから要らない悩みを抱える
GUIの設定がVBA操作にも影響を与えてしまうから制御できないかなと思った次第です。

お付き合いいただきありがとうございます。

873 名前:デフォルトの名無しさん (ワッチョイ df02-mIzA) mailto:sage [2020/05/04(月) 21:50:38 ID:6MBl5GGH0.net]
>>864
txtファイル開いた時点で何かしらのファイル名が付いてるでしょ

874 名前:デフォルトの名無しさん (ワッチョイ a764-7mTq) mailto:sage [2020/05/04(月) 22:13:52 ID:HiZbEqQh0.net]
特に目的があるわけではないけど、興味があってVBAを勉強しようと思ってます。
皆さんどんな勉強法しましたか?おすすめの本とか有りましたら知りたいです

875 名前:853 (ワッチョイ 67ac-ts7H) mailto:sage [2020/05/04(月) 22:16:36 ID:ESbXk+mE0.net]
>>865
まあ終わってるからいいけど・・

>>オプションを開いたまま
>これの意味がわからないですが、ダイアログを開いたままという意味なら、閉じても記憶は維持します。
 →これは、「検索と置換」ダイアログの
  「検索場所」ドロップダウンはGUIだと「オプション>>」ボタンで開かれる拡張エリアにのみ表示されて、
  「ブック全体を選択した」=「オプションを展開表示している」から、GUIなら気付かないわけがない。
  ということ。
  ダイアログ内の設定値同様、オプション展開状況もExcelプロセスで共有してるから、
  他のファイルで展開してるなら違うブックでも展開されたままダイアログ表示される。

>GUIの設定がVBA操作にも影響を与えてしまうから制御できないかなと思った次第です。
  VBAもGUIで行った設定の影響を受けないような、Rangeを指定する記述を普通は心掛けるべきだな

876 名前:デフォルトの名無しさん (ワッチョイ e709-ur4w) mailto:sage [2020/05/04(月) 23:21:11 ID:igVQrW+K0.net]
今までそーいうものだと思い込ませて放置していたことなのですが、
引数を使うのにカッコつけなきゃいけないメソッドと、使わなくてもいい
メソッドって、なにが違うんでしょうか?なにか理由があるのでしょうか。

Dim a As Range: Set a = Cells.Find(What:="test")
ThisWorkbook.ActiveSheet.PrintOut copies:=1

それに付け加えて、findした結果をcolllectionに格納する際、
カッコをつけるとdouble型、つけないとrange型となりました。

検索結果を格納するcollection.Add 検索range
検索結果を格納するcollection.Add (検索range)

ご教授何卒宜しくお願いいたします。

877 名前:デフォルトの名無しさん mailto:sage [2020/05/04(月) 23:58:21.23 ID:m3H0OQVZ0.net]
>>868
オプションが開かれてるという意味でしたか。
なるほどですね。
呼吸レベルでキーコンビネーションで通り過ぎちゃうので、、しっかり見るべきだと。

>VBAもGUIで行った設定の影響を受けないような
ごもっともです。

普段は .Find系は滅多に使わないのですが、あるとき大被害にあって、、、
どちらかというとGUI操作のほうが悩ましかったので、、、

API制御の方法にも辿り着けて、各Controlの制御もわかりました。
一瞬表示されてしまうのが難点ですが。良い情報をいただきました。

ご助言感謝します。

878 名前:デフォルトの名無しさん (ワッチョイ 877c-mIzA) mailto:sage [2020/05/05(火) 01:19:15 ID:nv2gdYIy0.net]
>>869
とりあえず戻り値があるかないかの違いとでも思っとけばよい



879 名前:デフォルトの名無しさん (ワッチョイ e7ad-HyhH) mailto:sage [2020/05/05(火) 03:17:48 ID:SDhPW+o/0.net]
12121212111211121112みたいな数列で、
1212..と続くものにはA、
11121112..と続くものにはBと置き換え、
AABBBのような文字列を作成することはできますか?

880 名前:デフォルトの名無しさん (ワッチョイ 2701-3faj) mailto:sage [2020/05/05(火) 04:45:25 ID:a+XprBAt0.net]
その数列を文字列に直しておく

これをReplace関数で
1212 → AA
A12 → AA
に置換する

同様に 1112 についても行う

881 名前:デフォルトの名無しさん (バットンキン MM4b-+Mqj) mailto:sage [2020/05/05(火) 12:25:05 ID:hJBFA35lM.net]
>>871
868です。ありがとうございました。

882 名前:デフォルトの名無しさん (ワッチョイ e709-ur4w) mailto:sage [2020/05/05(火) 21:19:05 ID:lsW1yIjx0.net]
vbaのエディタの話なのですが、皆様はコードの複数行を選択したいとき
ショートカットかなにか使っているのでしょうか?
たとえば、一部のコードが不要になって削除や切り取りしたいときに、
ちゃんと行頭から行末までしっかり選択しないとtabやスペースが残ってしまい、
その後コードがズレたり色々と不都合が生じています。
現在は、Homeで行頭、Shift+下矢印で選択しています。
マウスで左端をドラッグすれば選択できるのは知っていますが、これの
キーボードショートカットとかないんですかね・・・

883 名前:デフォルトの名無しさん (ワッチョイ bf2f-WRor) mailto:sage [2020/05/05(火) 21:34:38 ID:wmeBDlBR0.net]
行選択は知らんが、行削除ならCTRL-Yでよくね

884 名前:デフォルトの名無しさん mailto:sage [2020/05/05(火) 21:52:41.57 ID:PgjsbAaO0.net]
検索すれば出てくるよな、俺は shift+上/下 をよく使うけど
https://excel-ubara.com/excelvba1/EXCELVBA485.html

885 名前:デフォルトの名無しさん mailto:sage [2020/05/05(火) 22:03:15.71 ID:lsW1yIjx0.net]
>>877
web拝見しましたが、「複数選択→tabで行範囲が作成される」という部分
でしょうか?確かに、削除ならこれでいけそうです。
(コピーや切り取りのときにはtab→shift+tabで元通りにしなきゃならないかもですが)
私はずっとvbaを使わずエクセル本体の操作に慣れていたのですが、よく使っているのが
適当な複数のセル範囲を作成⇒それらをshift+spaceで行範囲化
という動作だったので、ここにいる方たちはvbaではどんな操作を
しているのか気になって質問いたしました。ありがとうございました。

886 名前:デフォルトの名無しさん mailto:sage [2020/05/05(火) 22:06:50.95 ID:PgjsbAaO0.net]
ちがうだろ

887 名前:デフォルトの名無しさん [2020/05/05(火) 22:11:42.93 ID:NpEa/agLM.net]
このハゲー

888 名前:デフォルトの名無しさん (ワッチョイ e709-ur4w) mailto:sage [2020/05/05(火) 22:30:50 ID:lsW1yIjx0.net]
>>879
すみません、何回webを読み返しても分かりません…
自分でショートカットを作れる(ユーザ設定のコマンド)という部分
かなとも思ったのですが…



889 名前:デフォルトの名無しさん (ワッチョイ 738e-jYUs) [2020/05/06(水) 00:51:48 ID:Kd1uYxyM0.net]
>>881
馬鹿は死ね

890 名前:デフォルトの名無しさん (ワッチョイ 7364-JVfZ) mailto:sage [2020/05/06(水) 00:55:04 ID:zRh9yAG10.net]
>>882
酷いこと言うね

891 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/06(水) 01:03:21 ID:6rAOvRF50.net]
コメントアウトだけはctrl+/でデフォルトでできるようにアプデして欲しいわ。。
設定もボタンクリックもめんどい

892 名前:デフォルトの名無しさん (ワッチョイ 5b09-jgrQ) mailto:sage [2020/05/06(水) 08:05:52 ID:p05hHIhJ0.net]
うーむ…どういじっても分からない…
Ctrl+Yは現在の行だけしか削除されないし、そもそも選択範囲は
作成されないし…
おっさんになった私の限界ですかね汗

893 名前:デフォルトの名無しさん (ワッチョイ 17da-oySJ) mailto:sage [2020/05/06(水) 09:03:13 ID:1Pr5leMy0.net]
>>885
やろうとしていることに何の意味がある?

894 名前:デフォルトの名無しさん (ワッチョイ 6602-uk0G) mailto:sage [2020/05/06(水) 09:22:21 ID:iCjbaALk0.net]
意味のある事しかしなかったら進化しない

895 名前:デフォルトの名無しさん mailto:sage [2020/05/06(水) 10:57:23.06 ID:6rAOvRF50.net]
くっそどうでもいいことに時間かけてるな

896 名前:デフォルトの名無しさん (ブーイモ MMd6-sgQa) mailto:sage [2020/05/06(水) 12:16:06 ID:j2svN8neM.net]
クラスに対してモジュールという概念がよくわかりません。Cで言うところ外部ヘッダファイルとソースみたいなものでしょうか。クラスを使ってたら基本的に出番がない?

897 名前:デフォルトの名無しさん mailto:sage [2020/05/06(水) 12:56:23.88 ID:Z893TlLs0.net]
クラスはOOPに出てくるクラス
newする必要がないならモジュール

898 名前:デフォルトの名無しさん (アウアウウー Sa1f-t13D) mailto:sage [2020/05/06(水) 13:46:31 ID:gPSsYrwFa.net]
馬鹿が進化してどうにかなるのか



899 名前:デフォルトの名無しさん mailto:sage [2020/05/06(水) 14:02:43.27 ID:OIN1lY2H0.net]
モジュールはVBがオブジェクト指向になるまえからの互換のためだから
クラスを使うなら忘れてもいいよ

広域で静的なクラスだと思えばいい

900 名前:デフォルトの名無しさん (ワッチョイ cb41-KyAn) mailto:sage [2020/05/06(水) 15:26:50 ID:G9W2eJpB0.net]
>>866
そのファイル名を使っても値が変数なしになってしまいます…

901 名前:デフォルトの名無しさん (ワッチョイ 662f-jW3u) mailto:sage [2020/05/06(水) 16:43:25 ID:OIN1lY2H0.net]
>>864
それウォッチがちゃんと出ないだけで、ブックそのものはとれてるだろ
試しにやってみたが、myBookのウォッチで展開すると変数なしだが
myBook.Sheets(1).Range("A1").Activate でちゃんと動作するぞ

902 名前:デフォルトの名無しさん (ワッチョイ 6602-uk0G) mailto:sage [2020/05/06(水) 18:09:01 ID:iCjbaALk0.net]
どうにかなるのかと思考停止するバカが炙り出される

903 名前:デフォルトの名無しさん mailto:sage [2020/05/06(水) 18:27:07.81 ID:1Pr5leMy0.net]
目的と手段が逆になる人たまにいる

904 名前:デフォルトの名無しさん mailto:sage [2020/05/06(水) 18:39:41.01 ID:6rAOvRF50.net]
基本的にプログラミングがうまくなる人って、
早い段階で、特定のやり方にこだわらず最終的に要件を満たせればいいってことに気付けるんだよな

905 名前:デフォルトの名無しさん (ワッチョイ 17da-oySJ) mailto:sage [2020/05/06(水) 19:32:27 ID:1Pr5leMy0.net]
本末転倒か、言葉が出てこなかった

906 名前:デフォルトの名無しさん (アウアウウー Sa1f-lvFW) mailto:sage [2020/05/06(水) 19:37:46 ID:aLD+Grz6a.net]
それはプログラミングをするという前提を置いている時点で矛盾している
手段はなんでもいいから目的達成できりゃいい、だと、だいたいのことは出来合いのSaaSを契約して使うのが最良

907 名前:デフォルトの名無しさん mailto:sage [2020/05/06(水) 20:34:47.68 ID:6rAOvRF50.net]
仕事ならそうだよね
代わりにSaasでってのは範囲が違うので当てはまらないけど

908 名前:デフォルトの名無しさん mailto:sage [2020/05/06(水) 20:38:43.01 ID:prm5gj7H0.net]
普段の自分のやり方じゃ対応できない場面が出た時は、
変に拘らずに完成優先でやるべきって意味でしょ



909 名前:デフォルトの名無しさん (ワッチョイ 5b09-jgrQ) mailto:sage [2020/05/06(水) 20:48:48 ID:p05hHIhJ0.net]
>>886
余計な操作が無くなることでかかる時間とストレスが減って、その分
新しい知識や技術を取り入れることに割ける、という意味があると思って
質問してみました。
>>879のちがうだろの結局何が違うのかは分かりませんでしたが…
まあ、ググレカスは昔からある2chの風習だと思いますが。

910 名前:デフォルトの名無しさん (ワッチョイ 8f63-07dd) [2020/05/06(水) 22:29:01 ID:k50qIlTz0.net]
>>902
残念ながら設定でこれだけ躓いて立ち止まるような人は言ってるような時間の有効活用できるとは思えんな
ツールはツールと割り切ったり慣れたりする事ができないなら、今後時間の有効活用できるようにもなれないよ

911 名前:デフォルトの名無しさん (ワッチョイ 738e-jYUs) [2020/05/06(水) 22:34:53 ID:Kd1uYxyM0.net]
>>902
馬鹿は死ね

912 名前:デフォルトの名無しさん (ワッチョイ cb41-KyAn) mailto:sage [2020/05/06(水) 23:47:22 ID:G9W2eJpB0.net]
>>894
できました
ありがとう

913 名前:デフォルトの名無しさん (ワッチョイ 17da-oySJ) mailto:sage [2020/05/07(Thu) 10:28:01 ID:nnhcaKI70.net]
頭のおかしい人の書き込みを読むのが無駄なので無視しますね

914 名前:デフォルトの名無しさん (オッペケ Sr33-V20a) mailto:sage [2020/05/07(Thu) 12:26:16 ID:D07kRcpQr.net]
はいつぎのひと

915 名前:デフォルトの名無しさん (ワッチョイ 6391-ABif) mailto:sage [2020/05/07(Thu) 13:12:49 ID:MibsCGor0.net]
>>897
そいつは違うな。
拘るのは必要だ。

最適なのに拘るの。
だから動いたで終わりにしないで他にもっと良い方法はないかを常に考える。

自分が知らなかった技術を手に入れた時に、これを使えば5年前のあの件はもっと上手く出来たかもと考える。

916 名前:デフォルトの名無しさん (ワッチョイ 1749-V20a) mailto:sage [2020/05/07(Thu) 14:10:36 ID:2qiR+IIc0.net]
>>908
ヒマなんだな

917 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 14:23:33.98 ID:cpirF9cIa.net]
本気でやり方に拘ったらExcelなんて大半が無駄なわけで
自分達の仕事を守るためにも割り切りは必要

918 名前:デフォルトの名無しさん (ワッチョイ bbad-I8iA) mailto:sage [2020/05/07(Thu) 14:42:35 ID:O8jL8wQb0.net]
>>897
>>908
短期では手段にこだわらない方が早いが
長期では技術向上になるから両方必要だ



919 名前:デフォルトの名無しさん (ワッチョイ 1749-V20a) mailto:sage [2020/05/07(Thu) 14:50:52 ID:2qiR+IIc0.net]
そんな1つのVBAに何日もかけれんわ

時間かけれるならWebサービスとかAPIとかもっと皆が幸せな解決方法が大体あるわ

920 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 17:22:17.83 ID:IeUYmiVSd.net]
VBAとか関係無く、プログラミング全般の話なんだけどね。
動きゃ良いとかいう奴はいつまで経っても出来るようにゃならんよ。

921 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 17:23:34.85 ID:IeUYmiVSd.net]
>>912
無い。
VBAが使われる所は殆どVBAじゃないとどうにもならんから使われてる。

922 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 17:24:33.58 ID:IeUYmiVSd.net]
>>909
出来る奴は瞬時に何通りかは思いつく。

923 名前:デフォルトの名無しさん [2020/05/07(木) 17:29:14.38 ID:OBEeDnS1M.net]
無知の知

924 名前:デフォルトの名無しさん (ワッチョイ 33ad-D+XR) mailto:sage [2020/05/07(Thu) 17:50:13 ID:oG7+JCgx0.net]
Application.CentimetersToPoints(1)
で列幅1cmにしたいんですが、
何度やっても5.64cmになります。

Rows(n).RowHeight = Application.CentimetersToPoints(1)
はちゃんと行幅1cmになりました。
Columns(n).ColumnWidth = Application.CentimetersToPoints(1)
だと何故か列幅5.64cmになります。
この事についてどう検索しても誰も言及してないことも含めて謎が尽きません。
煮詰まり過ぎて焦げ付いてきたのでどなたかアドバイスお願いします。

925 名前:デフォルトの名無しさん (ワッチョイ 33ad-D+XR) mailto:sage [2020/05/07(Thu) 17:58:41 ID:oG7+JCgx0.net]
あっまさか列と幅のポイントは同じポイントでも数値としては別物って聞いた気もする
そして行幅のポイントの方がVBAのポイントと合致しているという訳か
だとすると列幅のポイントに変換するのはどうしたらいいのか…

926 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/07(Thu) 18:13:16 ID:k5uIH00p0.net]
>>914
列幅の単位は違う

列幅の設定の仕方も
「application.centi〜 列幅」
で検索すればサンプルがいくつか出てくるけどね

927 名前:デフォルトの名無しさん (ワッチョイ becc-oySJ) mailto:sage [2020/05/07(Thu) 18:13:25 ID:z+lCu/T70.net]
>>918
ページレイアウトにして、列幅1cmをマクロ記録

928 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/07(Thu) 18:13:45 ID:k5uIH00p0.net]
あ、間違えた
アンカ>>917ね



929 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/07(Thu) 18:17:19 ID:k5uIH00p0.net]
>>915
瞬時に思い付くのに5年前のコードのこと修正するのかよw
5年間もずっとVBAばっかやって、しかもそんな昔のコード引きずってるのw

930 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 19:06:33.04 ID:IeUYmiVSd.net]
>>922
あれ、分からんかった?
瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。
あるいは昔、どうしても解決出来なかった問題が解決出来たとか。

俺の場合はデフォルトのプリンター設定のポートを変更するプログラムが出来なくてね。
PRINTER_INFO_5構造体を使ってプリンターのプロパティ設定変更するのは出来てたけどポートはさらに先のポインタでその時は出来なかった。

もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。

931 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 19:59:41.10 ID:k5uIH00p0.net]
>>923
効いてて草、必死すぎw

932 名前:デフォルトの名無しさん (スプッッ Sd2a-ABif) mailto:sage [2020/05/07(Thu) 20:18:07 ID:IeUYmiVSd.net]
>>924
理解出来なくて悔しいからって、そうまでして絡みたいの?

933 名前:デフォルトの名無しさん (ワッチョイ 6668-uk0G) mailto:sage [2020/05/07(Thu) 20:58:22 ID:SRAFxxem0.net]
効いてる事にして勝ったつもりになってるけど実は・・・

934 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 21:20:02.04 ID:k5uIH00p0.net]
>>925
別に古臭いVBAおじさんに絡みたいとかないけどなw
その程度でどや顔して、こんなところで長文まで書いて哀れだなあってねw

・瞬時に5個思い付く(ドヤア)
・10年以上前の話(ドヤア)
・どうしても解決出来ない問題が解決できた(ドヤア)

いい年して恥ずかしいww

935 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 21:20:55.13 ID:XMGIuLDd0.net]
>>917
煮詰まったなら完成じゃん。

936 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 21:29:03.52 ID:vCXp7vkf0.net]
4月、5月、6月というシートを請求書という新しいブック名のシートに追加していきたい場合

請求書というブックがなかったら
請求書というブックを作成して○月のシートをコピー
既に請求書というブックがあったら
そのブック内に○月のシートをコピー

という考え方でいいですか?
というか可能ですか?

937 名前:デフォルトの名無しさん (ワッチョイ cf7c-7oqX) mailto:sage [2020/05/07(Thu) 21:34:48 ID:wHiSIw2F0.net]
既にあるブックを変えて問題ないんならいいんじゃないの

938 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 21:46:21.07 ID:IeUYmiVSd.net]
>>927
悔しいと素直に言えば良いのにw



939 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 21:58:23.82 ID:k5uIH00p0.net]
>>931
あ、恥ずかしくなってるwかわいーねーw

940 名前:デフォルトの名無しさん (ワッチョイ 33ad-D+XR) mailto:sage [2020/05/07(Thu) 22:16:17 ID:oG7+JCgx0.net]
色々調べ直して列幅1cmできた! ありがとうございます。
それにしたって、なんと解りにくい…
CentimetersToColumnPointsみたいにしてくれればいいのに…

941 名前:デフォルトの名無しさん (スプッッ Sd2a-ABif) mailto:sage [2020/05/07(Thu) 22:22:20 ID:IeUYmiVSd.net]
>>932
自分の技術が足りないのがそんなに悔しいのかねw

942 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/07(Thu) 22:33:54 ID:k5uIH00p0.net]
>>934
恥ずかしくて言えることないの草
黒歴史だねーww

943 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/07(Thu) 22:35:53 ID:k5uIH00p0.net]
>>934
あ、>>929とか5通り早くコード付で答えてあげなよww
あと5年後まで改善策見つけたら書き込んでねw

944 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 22:48:13.57 ID:IeUYmiVSd.net]
>>935
君が初心者に毛が生えたレベルなのは俺の責任じゃ無いんだ。
悔しいからって絡むのは辞めてくれw

945 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 22:50:20.24 ID:IeUYmiVSd.net]
だいたい、バカにしようととしたら自分より上のレベルで悔しくても、それは自分が悪いんだろw

946 名前:デフォルトの名無しさん mailto:sage [2020/05/07(木) 23:08:01.99 ID:ATN3rOjQ0.net]
array関数で要素を代入する際に、プロシージャ引数のヒントの様にカンマで区切ると何を入力すべきか表示させることは出来ないでしょうか。要素が多いので解りづらくて
戻り値ありの関数作るべきなのでしょうか

947 名前:デフォルトの名無しさん mailto:sage [2020/05/08(金) 00:15:43.02 ID:7LgH0Xf00.net]
>>939
入力に困るほど大量のデータをプログラム中に直接書くのは設計が悪いと思う
せめてワークシートに見出しを付けて並べたら?

948 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/08(金) 00:44:49 ID:NrG+fdAu0.net]
>>937
恥ずかしい書き込みするやつの言うことは違うなあw
10年以上前の話とか言っちゃうんだもんなあww
で、5年がなんだって?w



949 名前:デフォルトの名無しさん (ワッチョイ 6391-ABif) mailto:sage [2020/05/08(金) 02:37:36 ID:LrYvIqoM0.net]
>>941
だから絡むの辞めてくれ。
初心者のプライドが傷ついたのかよw

950 名前:デフォルトの名無しさん (ワッチョイ 17da-oySJ) mailto:sage [2020/05/08(金) 09:10:24 ID:gaKPf4O20.net]
1000とった方が勝ち

951 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/08(金) 09:39:57 ID:NrG+fdAu0.net]
>>942

>出来る奴は瞬時に何通りかは思いつく。

>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。

>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。

ん?早く質問者に5通りコードで回答してあげなよ、プロVBAおじさんww

952 名前:デフォルトの名無しさん (ワッチョイ 6668-uk0G) mailto:sage [2020/05/08(金) 10:17:39 ID:SGzHt0H00.net]
このスレにコロナでも混ざってんの?

953 名前:デフォルトの名無しさん (スプッッ Sd2a-ABif) mailto:sage [2020/05/08(金) 12:21:01 ID:KpBIrL5Ad.net]
>>944
その返しもバカっぽくね?
質問の内容とか考えた?

954 名前:デフォルトの名無しさん (スプッッ Sd2a-ABif) mailto:sage [2020/05/08(金) 12:25:59 ID:KpBIrL5Ad.net]
>>944

>早く質問者に5通りコードで回答してあげなよ

日本語をちゃんと理解することができる?

955 名前:デフォルトの名無しさん (ワッチョイ 7f7f-sgQa) mailto:sage [2020/05/08(金) 12:27:38 ID:EoiUnzGX0.net]
static変数の宣言と同時に初期値入れても、Cと違って毎回初期値が入るようなんですけが回避方法ってありますか

956 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/08(金) 12:37:08 ID:NrG+fdAu0.net]
>>946
ほらほらー、10年以上やってこの程度も5通り分からないの?ww

「出来る奴は瞬時に何通りかは思いつく。」
んだろwwほらほらww

957 名前:デフォルトの名無しさん (アウアウウー Sa1f-Y/5H) mailto:sage [2020/05/08(金) 18:51:21 ID:F9AE4+4ta.net]
バッチを非同期で実行したいんだけどShellでやってもWSHShellでやっても
バッチの終了まで待たされるんだけど何故?

やってることはIEを操作してファイルをDLするところまでVBAでやって
それ以降の処理をバッチでやりたいんだけど…

958 名前:デフォルトの名無しさん (ワッチョイ cfe6-r6hg) [2020/05/08(金) 19:02:53 ID:XNwDJZFz0.net]
非同期オプション付けても出来ないのですか?
不思議ですね



959 名前:デフォルトの名無しさん (ワッチョイ 7364-JVfZ) mailto:sage [2020/05/08(金) 19:59:31 ID:swHMPSPD0.net]
最大で何行くらい組んだことある?

960 名前:デフォルトの名無しさん (ワッチョイ aea7-XasS) mailto:sage [2020/05/08(金) 20:43:59 ID:1Hremoh70.net]
2000

961 名前:デフォルトの名無しさん (アウアウウー Sa1f-2+Ho) [2020/05/08(金) 21:13:02 ID:oLBub1X/a.net]
vbaでハイパーリンク設定済み場所から
フルパスを取得したいです。

https://www.google.co.jp/amp/s/gamp.ameblo.jp/ksej/entry-11288945247.html

このサイトの方法でネットワーク上のアドレス取得して
あるセルにフルパスを貼りたいんだけど
カレントディレクトリが¥¥A¥B¥C
とあったら、¥¥A¥Bまでしか貼り付けに反映されないのってなぜかわかりますか?

msgboxでカレントディレクトリだけ表示させたら
Cまで表示されますが貼り付けたらBまでしか表示されない感じです。

あとカレントフォルダの設定はこのサイトの方法です。
https://vbabeginner.net/vbaでネットワークドライブにカレントを変更する/

962 名前:デフォルトの名無しさん (スプッッ Sd2a-ABif) mailto:sage [2020/05/08(金) 21:31:38 ID:KpBIrL5Ad.net]
>>949
くだらねえ煽りの前にお前が日本語を理解出来て無かったのが分かったのか?
そして今は理解出来てるんだろうな?

963 名前:デフォルトの名無しさん (スプッッ Sd2a-ABif) mailto:sage [2020/05/08(金) 21:32:10 ID:KpBIrL5Ad.net]
>>949
そしてもう1つ。
質問の内容とか考えた?

964 名前:デフォルトの名無しさん (スプッッ Sd2a-ABif) mailto:sage [2020/05/08(金) 21:43:28 ID:KpBIrL5Ad.net]
>>950
Shellは待たされないと思うぞ。
待つにはタスクからプロセスハンドルを得て、WaitForSingleObjectとかを使う筈。
←たしかこいつは古いんで今は似た名前の奴を使う。

965 名前:デフォルトの名無しさん (ワッチョイ 738e-jYUs) [2020/05/08(金) 22:58:17 ID:AMoglHga0.net]
>>954
ただのコピペしかできない馬鹿だからだろ

966 名前:デフォルトの名無しさん (アウアウウー Sa1f-2+Ho) [2020/05/08(金) 23:39:12 ID:oLBub1X/a.net]
>>958
他のサイトも色々見て調べたり試行錯誤したのですが
Cが表示されなくて。

何か縛り的なのがあるかわかりますか。
貼り付け時の表示文字数に制限があるとか。

最悪わからなければ、
¥¥からCまでを取得したものをセルに貼り付けて
C以降を貼り付けたものを&で繋げて使おうか迷ってます。

967 名前:デフォルトの名無しさん (ワッチョイ b7ce-oySJ) mailto:sage [2020/05/08(金) 23:49:29 ID:7LgH0Xf00.net]
>>954
最小限のコードで実験してみ?
(1)ワークシートにハイパーリンク設定
(2)FSOでフルパス取得
(3)MsgBoxで確認
(4)セルにフルパスの文字列を入れる

968 名前:デフォルトの名無しさん (アウアウウー Sa1f-2+Ho) [2020/05/08(金) 23:56:44 ID:oLBub1X/a.net]
1)と2)と4)についてはBまでの表示

3)についてはフルパスでは試してないので、試して見ます。

ちなみに3)はカレントディレクトリのみで行うと、Cまで表示されて、次の行に2)を試すとBまでになってしまいます。



969 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/09(土) 00:37:26 ID:SO2yq4ky0.net]
>>955
質問どんどん来てるよww
10年やってきたんだから早く5通り以上答えてあげなよww
そしてリファクタリング出来たらその都度書き込んでなw

>出来る奴は瞬時に何通りかは思いつく。

>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。

>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。

970 名前:デフォルトの名無しさん (アウアウウー Sa1f-Y/5H) mailto:sage [2020/05/09(土) 09:12:02 ID:jb1+fPLha.net]
>>957
思うぞと言われても実際待たされてるから困ってるんだが。

検索しても待つ方法しか引っかからんし…
CPU使用率が上がるとVBAスクリプトが止まるとかそういうわけじゃないよね

971 名前:デフォルトの名無しさん (オッペケ Sr33-DSpW) mailto:sage [2020/05/09(土) 09:12:34 ID:5lxB5cuMr.net]
パスとドライブの違いわかってる?
uncパスの形式わかってる?
そのaもbもフォルダじゃないけど、なにをどうやって表示させた?

972 名前:デフォルトの名無しさん (ワッチョイ b7ce-oySJ) mailto:sage [2020/05/09(土) 10:41:18 ID:OK904gHA0.net]
最小限のコードでテストしてみた
Excel2019のshell関数でバッチの同時起動できてるから原因は別の所にある
https://i.imgur.com/bqqc2uc.png

973 名前:デフォルトの名無しさん (ワッチョイ 17da-oySJ) mailto:sage [2020/05/09(土) 11:14:42 ID:m7V0shMq0.net]
>>954
ハイパーリンク扱う時って表示文字列とアドレスの2つがあった気がするが関係ないか?

974 名前:デフォルトの名無しさん (ワッチョイ 8f59-2+Ho) [2020/05/09(土) 12:02:06 ID:zV8Vx2bY0.net]
>>964
わかりにくくてすいません。

abcは仮に書いた感じで、実際はネットワーク上のフォルダ名になります。

975 名前:デフォルトの名無しさん (ワッチョイ b7ce-oySJ) mailto:sage [2020/05/09(土) 12:06:22 ID:OK904gHA0.net]
>>967
何をやろうとしてるのかイマイチよくわからん
試したコードとワークシートのスクショをここに書いて

976 名前:デフォルトの名無しさん (ワッチョイ 6391-ABif) mailto:sage [2020/05/09(土) 12:11:35 ID:74X5YOol0.net]
>>962
日本語が理解出来てたのか出来て無かったのかどっちだい?
話はそれからだ。

977 名前:デフォルトの名無しさん (ワッチョイ 8f59-2+Ho) [2020/05/09(土) 12:17:50 ID:zV8Vx2bY0.net]
>>968

ネットワーク上にあるエクセルファイルで、
相対参照で貼り付けされたハイパーリンクがあるんですが
それを絶対参照で取得したいです。

カレントディレクトリを¥¥a¥¥b¥¥cで設定し
GetAbsolutePathNameで取得しあるセルに貼り付けると
なぜか¥¥a¥b¥取得したパス.xlsxになります。
カレントディレクトリをmsgboxで表示すると¥¥a¥b¥cとなります。

今端末が手元にないので、スクショ取れるようになり次第
対応します。

助かります。

978 名前:デフォルトの名無しさん (ワッチョイ 8f59-2+Ho) [2020/05/09(土) 12:23:23 ID:zV8Vx2bY0.net]
>>966
アドレスを変更しています。



979 名前:デフォルトの名無しさん (ワッチョイ 7364-JVfZ) mailto:sage [2020/05/09(土) 12:40:40 ID:5ucHUX9S0.net]
どうやってvba勉強した?

980 名前:デフォルトの名無しさん (JP 0He6-lvFW) mailto:sage [2020/05/09(土) 12:48:47 ID:drDVgFRjH.net]
いくつか他の言語はできるからなんとなく雰囲気で
特に勉強はしていない

981 名前:デフォルトの名無しさん (ワッチョイ 6391-ABif) mailto:sage [2020/05/09(土) 13:04:53 ID:74X5YOol0.net]
>>963
何となく分かった。
待たされたんじゃなくてフォーカスがバッチファイルにある。

よく、たくさんのウィンドウが開いてる時なんかにメッセージを表示しようとタスクバー上で点滅してるのと同じ現象。
バッチファイル実行中にExcelをクリックするとすぐ実行されるよ。

Shellの第2引数にvbNormalNoFocusを指定してみよう。

982 名前:デフォルトの名無しさん (ワッチョイ 6391-ABif) mailto:sage [2020/05/09(土) 13:16:32 ID:74X5YOol0.net]
>>970
カレントディレクトリとは何かを調べた方が良い。
これはエクセルファイルだとかに関係が無い。
動いている場所だ。
ブックのある場所でも無い。

ハイパーリンクの相対参照、絶対参照の操作でカレントディレクトリが関係することは無い。

983 名前:デフォルトの名無しさん (スフッ Sd8a-xOzV) mailto:sage [2020/05/09(土) 13:16:59 ID:hJO1Owz9d.net]
>>972
マイコンBASICマガジンのゲームがやりたくて覚えた
子供は記憶力がいいからすぐ覚えた
大人になってから始める人は大変だろうね

984 名前:デフォルトの名無しさん (ワッチョイ 738e-jYUs) [2020/05/09(土) 13:21:14 ID:WSrPnN3q0.net]
意味もわからずただコピペしかできない馬鹿には無理

985 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/09(土) 13:25:01 ID:SO2yq4ky0.net]
>>969
話はそれからだ、ってコード5つ提示もしないで答えない10年経験者に言われてもなあww
ほらコード5つ提示して答えてあげなよw

>出来る奴は瞬時に何通りかは思いつく。

>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。

>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。

986 名前:デフォルトの名無しさん (ワッチョイ 8f59-2+Ho) [2020/05/09(土) 13:27:57 ID:zV8Vx2bY0.net]
>>975
ご指摘ありがとうございます。

相対参照だと./や../で省略されてしまうので
省略される箇所(ネットワーク上(インターネット上ではない)の決まったフォルダ)
を指定するためにカレントディレクトリで設定していました。

ちなみに複数端末でファイルを操作する事を想定しています。

もう少し勉強します。

987 名前:デフォルトの名無しさん mailto:sage [2020/05/09(土) 13:33:59.72 ID:74X5YOol0.net]
>>978
やっぱり日本語分かってねえじゃんwww

988 名前:デフォルトの名無しさん mailto:sage [2020/05/09(土) 13:40:39.44 ID:m7V0shMq0.net]
>>970
ネットワーク上にあるエクセルファイルはUNCパスになるので
ディレクトリ構成はサーバー上での階層
一番上はサーバーのIPアドレス(DNSで変換された名前)



989 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/09(土) 14:38:22 ID:SO2yq4ky0.net]
>>980
自分の言ったこと分かってねえじゃんww

>出来る奴は瞬時に何通りかは思いつく。

>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。

>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。

990 名前:デフォルトの名無しさん (ブーイモ MM97-OuYa) mailto:sage [2020/05/09(土) 15:54:31 ID:INzaqzr5M.net]
議論してるところ申し訳ないけど
>>929
わかる方お願いできますか

991 名前:デフォルトの名無しさん (ワッチョイ 17f8-lN29) mailto:sage [2020/05/09(土) 15:58:18 ID:JX27GBwZ0.net]
>>983
合ってるよ

992 名前:デフォルトの名無しさん mailto:sage [2020/05/09(土) 16:04:20.17 ID:74X5YOol0.net]
>>982
バ一カw

>>984
そう、これが正解。
バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。

993 名前:デフォルトの名無しさん (ワッチョイ 7332-R2sI) [2020/05/09(土) 18:27:33 ID:d0o5iTyS0.net]
>>984
便乗してそのコード教えてくれせんか

994 名前:デフォルトの名無しさん [2020/05/09(土) 18:39:39.46 ID:3Qrhs3L2M.net]
ある表があって一行ずつアクティブセルをループで下に移動させ、条件があった場合offset で特定のセルを集計するマクロを作成し使用してたんだけど、
アクティブセルじゃなくてcellで置き換えたら実行スピードが早くなった。
やっぱり画面が遷移すると遅くなるんだよね?
オートフィルタ組み込むと遅くなる?

995 名前:デフォルトの名無しさん (ワッチョイ 6bac-V20a) mailto:sage [2020/05/09(土) 19:29:16 ID:SO2yq4ky0.net]
>>985

矛盾しまくってるがww
頭悪いなーVBA10年以上やってるんだろww
瞬時に5通りできるんじゃないんですかー?www

ID:KpBIrL5Ad
ID:74X5YOol0
ID:MibsCGor0

>バカと違って質問の意味が分かってる人はこういう答えになるから何通り等の方法等とならないことを知っている。

>出来る奴は瞬時に何通りかは思いつく。

>もっとも、これ10年以上前の話だし、それで修正するとかいう話でもないけどな。

>瞬時に5通り思いついたとして、5年後に知らない技術を獲得した時に、あの時これ使えばもっと良くなったなあと思うとか。

996 名前:デフォルトの名無しさん [2020/05/09(土) 19:48:20.99 ID:YHeP8Ot70.net]
>>986
死ねよ

997 名前:デフォルトの名無しさん (ワッチョイ 7f7f-sgQa) mailto:sage [2020/05/09(土) 20:09:54 ID:7P+we5mg0.net]
フォームからシートにデータを入力する場合、セルに値を入れるコードはどちらに書く方が良いのでしょうか。
シート側に関数処理書いて、フォーム側から引数渡す形を考えていますが、本来はどういう使い方なのかわからず。

998 名前:デフォルトの名無しさん (ワッチョイ 17da-oySJ) mailto:sage [2020/05/09(土) 20:14:54 ID:m7V0shMq0.net]
>>990
書き方が何通りかある場合、どれを選択するかは作る人が選択すればいい



999 名前:デフォルトの名無しさん (ワッチョイ cf7c-7oqX) mailto:sage [2020/05/09(土) 20:29:18 ID:JFqcrtJG0.net]
>>987
表示に影響する処理は速くない

1000 名前:デフォルトの名無しさん (ワッチョイ cf7c-7oqX) mailto:sage [2020/05/09(土) 20:32:02 ID:JFqcrtJG0.net]
>>990
自分だったらシートには書かない

1001 名前:デフォルトの名無しさん mailto:sage [2020/05/09(土) 21:56:43.63 ID:RixiaBnA0.net]
>>990
変なやり方だね

1002 名前:デフォルトの名無しさん (ワッチョイ 7eef-oySJ) mailto:sage [2020/05/09(土) 22:11:53 ID:yzOAykNA0.net]
>>938
フォームとシートでどちらが主役かで決めるといいと思ったけど
シートをコピーしたときにコードもコピーされて後で大変になるから、シートじゃない方がいいね

1003 名前:デフォルトの名無しさん (ワッチョイ 7eef-oySJ) mailto:sage [2020/05/09(土) 22:12:57 ID:yzOAykNA0.net]
×>>938
○>>990
です

1004 名前:デフォルトの名無しさん (ワッチョイ 7f7f-sgQa) mailto:sage [2020/05/09(土) 22:22:33 ID:7P+we5mg0.net]
ありがとうございます。
フォームのコード量が多くなりますね。別クラスに記述してみます。

1005 名前:デフォルトの名無しさん mailto:sage [2020/05/09(土) 23:28:56.55 ID:m7V0shMq0.net]
>>997
お前の仕事はお前が判断すればいい

1006 名前:デフォルトの名無しさん mailto:sage [2020/05/09(土) 23:43:47.15 ID:G+eyUkVB0.net]
俺の仕事はお前のものだ。
お前の仕事はお前のものだ。
お前の手柄は俺のもの。
俺の手柄は俺のものだ。

みんな違っていいじゃないか。
だって、人間だもの。

1007 名前:デフォルトの名無しさん mailto:sage [2020/05/10(日) 08:02:11.47 ID:Nkoph0aj0.net]
俺の手柄なら金くれ

1008 名前:デフォルトの名無しさん mailto:sage [2020/05/10(日) 08:02:44.03 ID:Nkoph0aj0.net]
1000



1009 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 53日 15時間 35分 24秒

1010 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<292KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef