1 名前:デフォルトの名無しさん [2020/08/30(日) 11:55:27.33 ID:Oy/VxFsh0.net] !extend:checked:vvvvv:1000:512 ↑同じ内容を2行貼り付ける ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part67 https://mevius.5ch.net/test/read.cgi/tech/1593104489/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
259 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 19:55:21.82 ID:KOE6L/fW0.net] >>257 拾い物、動くかどうかは知らん Sub ボタン1_Click() Dim Shell, Folder Set Shell = CreateObject("Shell.Application") Set Folder = Shell.Namespace(Range("A1").Value) Fil = Dir(Range("a1").Value & "\*.*") Rows("5:65536").ClearComments i = 5 Do While Fil <> "" For j = 0 To 40 Cells(i, j + 1).Value = Folder.GetDetailsOf(Folder.ParseName(Fil), j) Next i = i + 1 Fil = Dir() Loop Set Folder = Nothing Set Shell = Nothing End Sub
260 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 20:18:38.96 ID:pG4LN1Ne0.net] 手を抜くんじゃない! まじめにヘッダー読み込んで解析しろよ
261 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 20:21:47.41 ID:0zA9ovKo0.net] ファイルのプロパティからは取れない場合もあるよ
262 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 21:31:45.86 ID:chmz5kZM0.net] >>255 今環境ないんだけど、 アプリケーションの定義何とかか、 インデックス何とかか、 オートメーション何とかのどれか。 何か変なものがSetされちゃってるのかと思ったけど、 MeじゃMeしかないよね?
263 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 22:10:00.45 ID:jvSIB85Td.net] >>260 昔、解析したことがある。 aviとかは割と簡単だね。
264 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 23:12:03.30 ID:dsrVDQ5Z0.net] すごく初歩的な質問ですみません &演算子で文字列と数字をつないで文字列を作った時に 出来上がった文字列に""を付けなくていいのはなぜなのですか? MsgBox "あいうえお" は""を付ける必要がある MsgBox "A" & hoge は文字列扱いのはずなのに""を付けて MsgBox ""A" & hoge"のようにしなくていいのが解せません
265 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 23:23:17.92 ID:0zA9ovKo0.net] &とhogeは文字列ではなく演算子と変数
266 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 23:24:34.57 ID:0zA9ovKo0.net] ""で囲ったら演算子でも変数でもないただの& hogeという文字列にしかならない
267 名前:デフォルトの名無しさん mailto:sage [2020/09/16(水) 23:48:53.36 ID:dsrVDQ5Z0.net] ありがとうございます >""で囲ったら演算子でも変数でもないただの& hogeという文字列にしかならない なるほど確かにです では、&演算子でつなぐと文字列扱いになるという認識が間違っているのでしょうか? それとも文字列扱いにはなるけど上記の理由から外すことになっているという感じでしょうか?
268 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 00:09:43.18 ID:pIQJoJyT0.net] >>267 その場合、 hogeは文字列として認識してください という命令を出している つまり 文字列(”A”) と(&) 文字列(hogeという変数に入っている文字列) を繋ぎ合わせて表示してください というのが”A” & hoge
269 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 00:09:48.11 ID:MJVBSNKC0.net] ダブルクォートには引数の囲むような意味はない 引数を囲む記号は丸括弧になる たとえば X = msgbox("a" & hoge) みたいな書き方になる 返り値をとらない場合は()が省略可能ってだけ
270 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 00:11:18.08 ID:D84tTl8o0.net] リテラルと変数について調べると理解できるかも
271 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 00:13:09.47 ID:ncMNPksn0.net] >>267 hoteの型は何なんだ
272 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 00:21:16.12 ID:0EHVBisp0.net] 値に型ってのがあるのを理解しよう 表示したいのは、"A"という値と変数hogeの値(を連結したもの)だろ &演算子でつなぐと文字列扱いになるってのは、演算対象を文字列に変換して結合するってこと この場合、hogeの値が文字列以外でも文字列に変換して評価するってことだ 基本を理解したいなら、なんの説明もなく&でつなぐと文字列扱いとかいう教え方するところは避けたほうが良いかな とりあえず動けばいいってならまあすきにすればいいけど
273 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 02:20:25.53 ID:c2bYLY/G0.net] MsgBoxの第1引数は文字列型の値である必要があり、文字列型の値を表す式として典型的なのは、@文字列リテラルか、A文字列型の値が格納されている変数(文字列型変数)の参照。二重引用符は、文字列リテラルの表記方法に過ぎない。 &演算子は、本来、2つの文字列型の値を被演算数とする演算子だが、被演算数が文字列型の値と数値型の値であるような場合等は、適宜数値の方を文字列型の値に自動変換した上で本来の演算を行う……ということかと。重複になるが。
274 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 04:55:16.59 ID:PzgKRL2g0.net] 数値を文字に変換するなら CSTR がある
275 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 07:47:55.65 ID:iixTl117d.net] >>267 法則を暗記するからそうなる。 法則の仕組みを覚えるんだ。
276 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 11:44:40.11 ID:1/N+zsdG0.net] 同じフォルダにある"〇〇"というCSVを開いて、そのシートの最終行を取得したいのですが 「インデックスが有効範囲にありません」というメッセージでとまります Sub salegrp() Workbooks.Open ThisWorkbook.Path & "\〇〇", ReadOnly:=False MsgBox Sheets("〇〇").Cells(Rows.Count, 1).End(xlUp).Row End Sub 他のブックの最終行を表示する方法を教えてください (A列には最終行まで値が入っています)
277 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 11:54:47.91 ID:DZPRMbPmM.net] csv開いたてからActiveWork ook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Rowすれば
278 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 12:14:37.64 ID:qGYgSA/Y0.net] >>276 必要なのは最終行に入ってるデータの内容?行数を知りたいだけ? 全データをワークシートに入れる必要がなければテキストファイルとして開いた方が早いかも
279 名前:デフォルトの名無しさん [2020/09/17(木) 12:24:52.75 ID:D1QZID39M.net] Workbooks.Openの返り値をとってそれを操作する なおRows.Countも省略せずにシート指定する
280 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 13:03:15.94 ID:1/N+zsdG0.net] >>277 できました。
281 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 16:10:59.23 ID:mN4YvgPv0.net] >>267 Sub tessstttt() Dim str1 As String Dim str2 As String str1 = "あいうえお" str2 = "かきくけこ" MsgBox str1 & str2 '結果「あいうえおかきくけこ」 MsgBox str1 & "かきくけこ" '結果「あいうえおかきくけこ」 MsgBox "あいうえお" & "かきくけこ" '結果「あいうえおかきくけこ」 End Sub
282 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 16:17:02.54 ID:mN4YvgPv0.net] >>279 ↑ VBA続けるつもりならこっちでやれるようにした方が
283 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 16:44:05.17 ID:T9Rqn+gv0.net] 他のbookやsheet絡むととたんに冗長になるんだよなぁ Range(.Cell(a,b))とか .Cellの前にもブックやシート指定しないとならんし
284 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 17:02:14.36 ID:pIQJoJyT0.net] >>283 むしろ1シートだけしか使わない場合でも、実効中に人がシート変更とかしても大丈夫なようにブック明記した方がいい
285 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 17:07:16.63 ID:N0wmq1hya.net] ブックとシート明示してworksheetオブジェクトの変数作ってそれ経由でアクセスさせるのが鉄板かね〜
286 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 17:41:26.80 ID:dgD4TP5z0.net] csvの最終行だったらテキスト形式でEOFまで吸い上げてってやった方が動作時間的には良さそうな気がした
287 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 18:04:52.95 ID:aPn4iHhdM.net] CSVの読み込みをしっかりやるならPowerQuery使おうみたいな話もあったりなかったり
288 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 18:51:11.07 ID:1zO/WKqm0.net] >>285 てか、基本でしょ
289 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 18:59:48.75 ID:DNVG/ozSa.net] >>288 鉄板と基本の違い教えて
290 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 19:13:46.34 ID:ncMNPksn0.net] シート明示してないコードほんと多い よくやるわ
291 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 19:55:58.19 ID:iixTl117d.net] >>279 俺なんて、必ずBookから書くぜ。 WithとSetを多用することになるが。
292 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 19:56:59.36 ID:iixTl117d.net] >>283 その例ならRangeの前にも"."が必要。
293 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 19:58:31.27 ID:iixTl117d.net] >>286 うん、CSVはLine Inputで1行ずつ+Splitで分解にすることが多い。
294 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 20:23:48.98 ID:dgD4TP5z0.net] VBA覚えたての頃はいちいちアクティブシート切り替えてシート指定省いてたけど Sheet1.Cells(a,b)って書く癖は絶対つけといた方が良いって今は思ってる 可読性が段違いだもん 暫く同じシートのセルをいじくりたおすならWithで目立つように囲ってやりゃあ良いし
295 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 20:32:12.03 ID:0EHVBisp0.net] >>286 項目中に改行含むcsvとかも存在するからなぁ 汎用的なcsvを真面目にパースするとかなり面倒 そしてEXCELは最強のCSVパーサ(笑)
296 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 20:38:51.87 ID:23KXp+DW0.net] なんつーレベルの高い話だよ 初心者が覚えようと思ってどんなもんかとスレを見たのが大間違いか
297 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 21:39:36.45 ID:ncMNPksn0.net] この先いつまで初心者を名乗るつもりか知らないがいちいちアピールしない方がいいよ
298 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 21:45:39.26 ID:DqUtQRPA0.net] >>294 可読性以前に怖いんだよな。 アクティブシートが切り替わっちゃったらどうしようって。 実行中の操作とかで。 DoEvents挟まなきゃ絶対切り替わらないってならいいんだけど。
299 名前:デフォルトの名無しさん mailto:sage [2020/09/17(木) 22:36:46.26 ID:qGYgSA/Y0.net] 可読性も考慮するならオブジェクト変数に入れたりWithで囲んだり、頻出する構文なら別Functionに飛ばすという手もある めんどくさいけどバグを出すよりはマシ
300 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 01:50:57.23 ID:V3SekzLi0.net] そもそもオブジェクト指定のないCellsがいつでもActiveSheetを参照すると思うなよ シートモジュールに書いたCellsはそのシートを参照するんだぜ
301 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 10:32:05.02 ID:68qBgcmgH.net] VBAというよりVBSかもしれませんが いろいろ試したのですが正規表現の(肯|否)定(先|後)読みに対応していないようなのですが認識に相違ありませんか? また、擬似的に(肯|否)定(先|後)読みに対応させたコードを誰か公開していませんか?
302 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 14:09:52.14 ID:1dkG1MHP0.net] >>301 多くのアプリで、正規表現はWindowsに標準で内蔵されてるDLLを使ってる 独自の仕様やバグがあるのは既知だから、それが気に入らない時は別のライブラリを見つけてくるしかない
303 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 17:55:04.61 ID:vGT+RG4a0.net] VBSはスレ違いになるんだろうけどさー 今、仕事でそれで書かれたコード見てるんだよねー VB.NetからVBAに戻るとそのインテリセンスの効かなさに辟易するけど VBSで書かれたものはその比じゃないねー 参照もなーんも効かないところに持ってきて インデントも正しく書いてないし 綺麗にスパゲティーコードになってるの見ると 殺意を覚えるわー まぁVBS自体は同じファイルの中に 複数のクラスが書けたりするところは VBAよりいいのかな?
304 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 20:53:29.32 ID:Ej6zlwK4a.net] 見てるだけで殺意はないだろ 自分で分かりやすく直していけばいい
305 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 20:57:08.45 ID:E6dIN4Hja.net] どんな人が書いたコードでも理解できるのがプロ
306 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 20:57:17.16 ID:nL5nIenz0.net] C列に"2007/3/26"などのような書式で年月日が入っていますが それをC=年、D列=月、E列=日にしたいのですが ↓だと年が1905,月が1、日が26日のように変換されてしまいます。 Dim r As Long, dt As date For r = 2 To 435 dt = CDate(cells(r,3)) Cells(r, 3) = Year(dt) Cells(r, 4) = Month(dt) Cells(r, 5) = Day(dt) Next r
307 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 21:01:25.47 ID:vGT+RG4a0.net] >>306 最初date型で取ってやれば確か年や月や日を取る関数が有ったと思うよー じゃあねー
308 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 21:05:10.29 ID:3fDNLBctH.net] >>302 私が気に入りそうなものはありますか? 肯定先読み肯定後読み以上に高度な機能は求めていないのですが
309 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 21:10:13.79 ID:vGT+RG4a0.net] ていうかそうしてんじゃん 出力先のセルの書式はどうなってるの? コードを見た感じじゃ少なくとも3列目は 日付型みたいだけど
310 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 21:14:07.50 ID:Kp8J/oyZ0.net] >>306 year、month、dayの引数のdtの中身は2007/3/26ではない
311 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 21:16:37.69 ID:Kp8J/oyZ0.net] または3、4、5列目の表示形式をそれぞれy、m、dにしてる
312 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 21:29:41.49 ID:LhaPjq300.net] >>306 考えなしに書くからセンス皆無なコードだけど3列目の日付が文字列で入ってるならこんなんどうよ Dim Ary(2 to 435,1 to 3) As Long,r As Long, a As String For LBound(Ary,1) to UBound(Ary,1) a = Sheet1.Cells(r,3).Value Ary(r,0) = Split(a,“/“)(0) Ary(r,1) = Split(a,“/“)(1) Ary(r,2) = Split(a,“/“)(2) Next Range(Sheet1.Cells(2,3),Sheet1.Сells(435,5)) = Ary
313 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 22:40:09.47 ID:1dkG1MHP0.net] >>306 Sub Macro1() Range("C2:C435").Copy Range("D2:E435").Select ActiveSheet.Paste Range("C2:C435").NumberFormatLocal = "yyyy" Range("D2:D435").NumberFormatLocal = "m" Range("E2:E435").NumberFormatLocal = "d" End Sub
314 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 22:48:07.19 ID:mNDgEDOXa.net] >>313 くそこーどを貼るのはやめてあげて
315 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 23:02:36.64 ID:V3SekzLi0.net] >>306 セルに表示されている文字とセルの値は別だって理解が必要 おそらく C列の表示形式が日付になっているが、そこの値を数値の2007にした 数値の2007は日付にすると1905/6/29 その年だけが表示されている 同様に数値の3は1900/1/3、数値の26は1900/1/26 まあ、想定とは違うかもしれんが正しく動いてると思われるな 解決策は、表示したいのは数値なのか日付なのかちゃんと決めて然るべき値と書式を設定しろ
316 名前:デフォルトの名無しさん mailto:sage [2020/09/18(金) 23:05:29.99 ID:V3SekzLi0.net] つヵ、C列の値でC列に書き換えるとかしないで 元の値を別の列にもっとけば、VBAなしで関数だけで出来るだろうけど
317 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 04:14:23.53 ID:JSd39pzr0.net] C,D,E列に表示させたいのは「数値」であるにも関わらず 「日付」の表示形式になっているからおかしくなる C,D,E列の書式設定→表示形式を日付から標準にする こうするとC列は39167のような形で表示されることになるが お構いなしにマクロを動かせば、意図した通りの動きになる でどう?
318 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 07:38:40.10 ID:kGiNzl5D0.net] >>305 理解出来るからこそ腹立たしいこともあるよー 例えばaとbとcってBooleanの変数を定義して a = b = c とか書いてるやつ まぁbとc が同じならaにTrueが、 違えばFalseが入るってことを期待して 書いてるなら見づらいけどまだ許せるよ でもcにbが代入されてそのままaにbが 代入されるとか思って書いてたらしく システムバグらせてそのままにしてたりとか テストどうしてたんだとか思うよねー 正直こんなのに関わりたくないけど 仕事だからやるって感じだねー
319 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 07:43:05.72 ID:kGiNzl5D0.net] あ、逆だった bにcが代入されてaにbが代入されると 思ってたらしいってことね まぁこの4日間は連休だし そうじゃなくてもテレワークだから 気楽に適当にやるつもりだよー
320 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 07:51:21.74 ID:oBjg4zik0.net] 仕事の内容でそのソースを直せってことなら書き直せばいいんじゃねーの そのまま残すと後任者に同じように思われるんだぜ
321 名前:257 mailto:sage [2020/09/19(土) 10:25:54.04 ID:fwfEHGdP0.net] >>259 遅くなってしまいましてごめん。自分の欲しかった情報がこれで取れる 事ができました。 ありがと!
322 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 15:00:02.54 ID:TN+kKyJDd.net] >>320 その判断は結構難しい。 今動いてるものは、そのままにしておくというのが通常だ。 Accessでレコードセットループで回してる最中にその値でもって別のレコードセット開いたりを7、8回やって10分かけてデータ作ってるプログラムが有るんだけど、コレ、クエリ1つで出来るんじゃね?と思って試しに作ったら一瞬で出来る。 それでも、正式に変更することになるかと言えばならない。 こっちだってその辺は分かってる。 何かの時に、きちんと作り直しましょうという話になるまで置いとくもんで、むしろそんな話にならずにずっ―とそのままというのが殆ど。
323 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 15:56:27.98 ID:nGfYM+wGM.net] >>322 なら > でもcにbが代入されてそのままaにbが > 代入されるとか思って書いてたらしく > システムバグらせてそのままにしてたりとか > テストどうしてたんだとか思うよねー とか書くなよ どうせ盛々で語ってるだけだろw
324 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 15:59:42.46 ID:TN+kKyJDd.net] >>323 いやいや、俺はその人じゃないから。
325 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 16:24:18.56 ID:oBjg4zik0.net] >>322 重要な変更とは別で、こまかい高速化や最適化として変更するんだよ それができないなら他人のコードを悪くいってはいけない
326 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 18:06:32.97 ID:kGiNzl5D0.net] そうかーみんなそんな具合に考えてるのかー でも悪いけどその場でチャチャっと直すことはしないよ もちろん上に話を通すのは当然だけど こんなぐちゃぐちゃな行き当たりばったりのコード書いてんだから直すんなら他への影響調査の時間貰う まぁ当たり前だよねー
327 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 18:37:26.04 ID:e5zvgWAXM.net] >>324 本人でもないのに > でもcにbが代入されてそのままaにbが > 代入されるとか思って書いてたらしく > システムバグらせてそのままにしてたりとか > テストどうしてたんだとか思うよねー に対して > 今動いてるものは、そのままにしておくというのが通常だ。 って言うの? アホの上塗りにしかなってないけど… w
328 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 18:39:28.33 ID:DdZzGNwy0.net] >>319 実際にそういう動きをする言語もあるからな >>325 それは開発方法とフェーズによる いつでも好き勝手コード弄れるような環境ばかりではない まあ、VBAではあまりないだろうけど
329 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 18:41:22.13 ID:HTxR1ogMM.net] >>326 お前の会社のレベルが低いだけだろ まあそんな会社にしかいられない自分を省みたほうがいいなw
330 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 20:51:03.26 ID:kGiNzl5D0.net] >>329 ふーん そっちの会社ではそういうの見つけたら 調べないでチャチャっと直しちゃうのかー よっぽど優秀なんだねー 俺みたいな無能にはとても怖くて出来ないやーw
331 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 21:40:33.28 ID:b3MmLDI3M.net] >>326 お前以外にチャッチャッと直すなんて言ってる奴いないんだけどw レベルの話は > こんなぐちゃぐちゃな行き当たりばったりのコード書いてんだから の部分な
332 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 22:13:23.39 ID:TN+kKyJDd.net] >>325 いや、そうじゃなくて… そうか、確かにVBAはそれでメシ食ってる奴は少ないから分からんかもしれんな。 ウォーターフォールでやってて、プロジェクトの目的が決まってるのに、いくら高速化しても余計なことすれば怒られるのが当然なんだよ。 それが原因で不具合が出てみろ。 大変なことになるんだから。 確かに、思いつきでどんどん改変してく仕事も結構やったことある。
333 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 22:16:29.20 ID:TN+kKyJDd.net] >>327 開発全般によくある話として言ったまで。 cとかbとかの話に参加したわけじゃない。 動いてるなら、触らないというのはよくあることだ。
334 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 22:21:26.21 ID:TN+kKyJDd.net] >>328 確かに少ないかもね。 考えてみれば俺も今の職場で初めて。 でも他言語じゃよく聞く話だよな。
335 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 22:26:15.60 ID:cNAZP0Op0.net] >>333 話の流れが読めないバカということはよくわかった
336 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 22:48:23.19 ID:RlUx9i/e0.net] どんなに簡単な修正でも、思い込みやミスは誰にでもある うっかりエンバグする可能性があるから、先方から高速化などの要求がない限りは動いてる物を勝手に修正はしないのが基本かなあ
337 名前:デフォルトの名無しさん mailto:sage [2020/09/19(土) 23:01:33.58 ID:Q45ivJBB0.net] 修正するか確認してからじゃないとしないな
338 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 01:28:31.38 ID:Hljg9CcL0.net] >>332 それは逆だ、今のコードが悪いかのを直したせいで不具合がおきるのは直し方が悪いせい 自分できちんと直す能力もない奴が今のコードが悪いとか語るなよ
339 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 01:34:05.40 ID:Hljg9CcL0.net] というのは言い過ぎなのかもしれんな、直せる自信がないなら直さないでいいんじゃね
340 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 01:38:55.36 ID:Hljg9CcL0.net] 俺から見れば細かい変更もできない人が重要な処理を変更する方が不具合が起きるだろって思うが
341 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 03:34:03.51 ID:G6tFT8m8M.net] なんで動いてるものの話になってるのかわからんけど元々の話は > システムバグらせてそのままにしてたりとか > テストどうしてたんだとか思うよねー だから、修正ありきだろ 修正の手順はその組織で違うだろうけど
342 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 08:02:49.76 ID:MxR9qqIJa.net] ここの会話見てると仕事してる時に戻ったみたいでイヤになる
343 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 08:29:09.75 ID:lYpGB0SB0.net] 技術的に可能(can)なのと プロジェクトとして可能(may)なのはべつだって言ってるんだが VBA使いを悪く言う気はないが まともなプロジェクトでやってないから理解できないんだろうな
344 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 09:11:52.63 ID:jB/qzKKfa.net] 内製なら結構気軽に弄るもんだよ 俺は以前はSIにいて今は自社サービス兼社内SEだから両方の立場がわかるけど、 システムって君のような外の人が思ってるほど重要なものでも神聖なものでもない
345 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 09:13:39.89 ID:WRa/xy2u0.net] だれも技術的に可能かどうかなんて言ってないのに意味不明なことを言い出してて笑う
346 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 10:58:42.70 ID:uHe9qv/N0.net] 企業や仕事がどういうものかを理解していない馬鹿ばっかりで草
347 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 11:39:55.26 ID:bN/HvUsh0.net] 内製でも気軽に弄らないなぁ
348 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 12:04:24.67 ID:WRa/xy2u0.net] 自分とか周りの数人しか使わないとかならリファクタリングで弄るケースもあるし全社レベルのシステムとかなら影響調査からってケースもあるわな そのプログラムがおかしくなった時の影響度とかも関係するし 要はケースバイケース
349 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 16:05:38.71 ID:Q2tD94P+d.net] >>338 >>339 先のAccessの話なら直せる自信ならある。 というか、ここにいる奴で俺が出来ないんだったら出来る奴はいないと思うぜ。 それぐらい自信ならある。 ただし、まとも奴なら誰でも言うがバグを出さない自信は無い。
350 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 16:13:52.61 ID:WRa/xy2u0.net] ふと、 日本人のできません 韓国人のできます 中国人のできました を信用しちゃダメ って言うのを思い出した… w
351 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 16:52:11.86 ID:qZo3Wq6A0.net] >>348 だよな、さすがに自分とか周りの数人しか使わないとかなら 時間見て許可取ってリファクタリングするわ 自分が作ったツールやシステムなら空き時間見て少しづつリファクタリングだな さすがに全社レベルのシステムで勝手にリファクタリングはないな そもそも許可取るのが大変
352 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 20:23:41.76 ID:r+WJtgDsM.net] VBAの後継言語がExcelに標準搭載されると知識も勉強時間も無駄になる と考えてしまいVBAの学習が捗らないのですが、どうしたらよいでしょうか
353 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 20:29:51.63 ID:w1btmlsr0.net] 開発する能力と言語の習熟は別と考えた方がいいと思うよ 弘法筆を選ばずって言うし
354 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 20:39:12.03 ID:Q2tD94P+d.net] >>352 そんな風に考えたことは無いなあ。 その時に必要だから覚えるんだよ。
355 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 20:46:14.34 ID:IR23Mwdta.net] VBAなんて勉強するもんじゃなくて使っていくうちにわかるもんだし
356 名前:デフォルトの名無しさん [2020/09/20(日) 20:55:59.15 ID:6QmidxOBa.net] セルの中身が -------------------------- あああ325gsdsが| aaaojgwe | 33333 | | いいksが | bbb93502g | ^^^^^^^ | | | 888っふぁふぁ | aaawopfjw | f−bgんlsgさ | -------------------------| のような感じの際、「あああ325gsdsが」や「aaaojgwe」のように1行づつ取得する方法はあるでしょうか?
357 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 21:02:07.06 ID:bN/HvUsh0.net] vblfで分割
358 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 21:04:12.62 ID:w1btmlsr0.net] セル内の改行コードはCRとLFとCRLFがあるのでどれかに統一して 統一した改行コードでsplitすれば
359 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 21:09:38.60 ID:ce1O3kmIH.net] VBAやっててもオブジェクト指向が全然身につかないんだけどどうしよう
360 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 21:30:48.40 ID:Q2tD94P+d.net] >>358 セル内の改行はLFだよ。 キーボード入力ならの話だけど。
361 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 21:31:49.13 ID:Q2tD94P+d.net] >>359 VBAとは別にオブジェクト志向に親和性のある言語勉強すれば? それがVBAにも役に立つよ。
362 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 21:35:54.17 ID:w1btmlsr0.net] >>360 よそからコピペしたりするとLF以外も混じるよ 念のため統一する方が安心
363 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 22:02:19.77 ID:BARJaSzG0.net] >>359 オブジェクト指向を身につけるためにVBAをやっているのか?
364 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 22:16:21.98 ID:ce1O3kmIH.net] >>361 >>363 フローチャートは書けても オブジェクト指向というものがあるということがなんとなく判っていても じゃあオブジェクト指向できっちり設計しようという発想が浮かばないというかまだ怖さがあるんだよね MVCって言葉もネットサーフィンをして先週巡り合ったくらいの素人だから とりあえず新たな設計手法を試そうと思っても 何に手をつければいいかわからん
365 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 22:48:07.21 ID:lUm0Ft460.net] =EVALUATE()を使ったらマクロだよって保存するときに言われた。 見た目関数なのに実はマクロっていうものが他にどんなのがあるか知りたいんだけど、こういうのなんて言うの? 検索ワードが思い付かないんだけど知ってたら教えて。
366 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 22:53:39.67 ID:Q2tD94P+d.net] >>364 いや、VBAはあまりオブジェクト志向とは親和性がないんだよ。 VBAそのものの根幹はオブジェクトそのものを扱うし親和性も有るんだけど、それで何かを作る時には俺はあまりオブジェクト志向で作らないな。 それでも、感覚的にピッタリ来るときもある。 そういう感覚の為にも他言語の経験が役に立つ。 でも、VBAでオブジェクト志向って上級者じゃないとピッタリ来ないんじゃないかな。
367 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:22:55.87 ID:szIFBvS40.net] >>365 Excel 4.0 マクロ
368 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:26:29.37 ID:lUm0Ft460.net] >>367 さんきゅー
369 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:28:59.95 ID:bN/HvUsh0.net] >>358 crでセル内改行はしない
370 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:29:16.08 ID:pX+ICxi/0.net] フレームワークどうするよ
371 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:30:38.40 ID:szIFBvS40.net] そもそもVBAが古いMS-BASICの言語仕様をほとんどそのまま踏襲してるもんだからオブジェクト指向との親和性はあんまり高くない まだVB.netの方が色々やりやすい
372 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:38:32.30 ID:wTyEOUZY0.net] >>369 セルをアクティブにするとCRでも改行するらしいよ 自分はそういうよくわからない挙動に振り回されたく無いから変換するよ
373 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:40:59.31 ID:XhiE7Cxv0.net] >>372 らしいよ
374 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:44:11.30 ID:wTyEOUZY0.net] LFとCRLFが混在するのは確かめたよ なので片方に寄せてる CRも混ざる可能性はあるのでついでに処理してるよ
375 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:47:19.77 ID:GTzW+qv5H.net] >>366 なるほどそうなんですね 別言語で勉強してみます
376 名前:デフォルトの名無しさん mailto:sage [2020/09/20(日) 23:51:14.87 ID:bN/HvUsh0.net] セル内で改行するとlfが入る テキストファイルとかでcrlfで改行されたものをセルにコピペすればcrlfがそのまま貼り付けられるが、lf部分が改行されるだけでcrは無視される
377 名前:デフォルトの名無しさん [2020/09/21(月) 23:04:27.19 ID:lAfdaJg/0.net] もともとマック用のソフトウェアだから、改行コードが揃っていないんだ。
378 名前:デフォルトの名無しさん mailto:sage [2020/09/22(火) 09:46:47.28 ID:9vuxubOza.net] で、そのままの仕様で残すんだろ
379 名前:デフォルトの名無しさん mailto:sage [2020/09/22(火) 09:47:44.43 ID:9vuxubOza.net] 変に直すと他で問題が起きるかもしれんし
380 名前:デフォルトの名無しさん mailto:sage [2020/09/23(水) 18:03:19.32 ID:a1crOWFAM.net] 今開いてるエクセル3つを左右で3分割させるマクロとかありますか?
381 名前:デフォルトの名無しさん mailto:sage [2020/09/23(水) 18:23:33.24 ID:18wwGwYm0.net] 表示→整列じゃだめなのか?
382 名前:デフォルトの名無しさん mailto:sage [2020/09/23(水) 19:23:23.78 ID:nN1KQy3b0.net] あるけど、マクロっていうかWindowsAPIで画面サイズ調整だろうな。 3画面用意する方が楽かも。
383 名前:デフォルトの名無しさん mailto:sage [2020/09/23(水) 20:26:43.04 ID:kiC/kEHG0.net] Windows.Arrange ArrangeStyle:=xlVertical
384 名前:デフォルトの名無しさん mailto:sage [2020/09/23(水) 20:34:38.55 ID:Dfniq8Ns0.net] >>381 ありがとう >>383 本当にありがとう 馬鹿すぎる質問して親切に教えてくれて本当に感謝 教えてくれたコードの方を頂きます 3画面揃ったときについでに分割させたら良い動きしてくれました めちゃくちゃ後付けですみませんが これを一番右でこいつは真ん中とか 任意の配置は流石に無理ですか? 出来そうなら自分でも何とか調べてみます
385 名前:デフォルトの名無しさん mailto:sage [2020/09/23(水) 21:30:49.65 ID:kiC/kEHG0.net] >>384 できる
386 名前:デフォルトの名無しさん [2020/09/23(水) 22:06:19.89 ID:gKXTj3UI0.net] こういう馬鹿の特徴は、少し教えるとつけあがって自分で考えることもせずあれもこれもとねだること 少しは頭を使えよ
387 名前:デフォルトの名無しさん mailto:sage [2020/09/23(水) 22:26:51.67 ID:uvIhcfbN0.net] 特徴っていうかこれいつもの人
388 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 20:09:48.08 ID:48EvNsnc0.net] accdb → 問題なく型指定出来る。 csv → schema.iniで型指定出来る。 自シート → どうすんの? IMEX=1も利いたり効かなかったりで当てにならん。
389 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 21:07:06.86 ID:1nrszLVg0.net] そういう報告はいらないです
390 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 21:36:41.69 ID:WSuN06d1F.net] 罫線の所属するセルについて質問です セルの値を条件にして罫線の種類を変えようと考えているのですが、 隣合うセルの境界線はどちらのセルの罫線が優先されて表示されるのでしょうか? よろしくお願いします
391 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 22:18:01.90 ID:JBJKUwWVM.net] >>390 実験して報告よろしく
392 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 22:34:46.55 ID:48EvNsnc0.net] 後から指定した方だな。 思いっきり拡大すれば、線が2本引いてあるのが見えるのかと思ったが、そんなことはなかった。 ちなみに、ストIIで2人同時に投げ技をかけた場合、どちらが優先されるのかはランダムで50%/50%らしい。
393 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 23:34:29.90 ID:3gugGrYy0.net] >>390 これ、たしか罫線の種類で、基本ごっつい順に優先順位があったはず ついでに、セルの書式設定で罫線設定すると、隣のセルの罫線設定も消えたり変わったりする
394 名前:デフォルトの名無しさん mailto:sage [2020/09/26(土) 11:57:49.22 ID:aYgi9d/P0.net] 太いほうだった(Excelばーじょん2016) https://i.imgur.com/kfSAyHL.png 印刷境界とかは分けて認識されてるから、なんだかんだ自分のコードを検証したほうがいいな
395 名前:デフォルトの名無しさん mailto:sage [2020/09/26(土) 13:23:27.50 ID:aYgi9d/P0.net] あ、宣言とかしときながらシート指定するん忘れてやがる
396 名前:デフォルトの名無しさん mailto:sage [2020/09/26(土) 19:01:46.19 ID:J5kcfwi60.net] ワラタ
397 名前:デフォルトの名無しさん mailto:sage [2020/09/26(土) 20:07:30.98 ID:wDXyaCpN0.net] getElementBy飽きたんだけど、RPA的制御じゃなくて、htttp通信を駆使してどうにかする、みたいのない? APIとか使えない古いシステムに対して。
398 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 07:29:13.82 ID:KJpIeh7z0.net] htttp通信がわからんがセキュリティー的に問題起きるんじゃね
399 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 15:17:02.78 ID:a7rnW+2W0.net] htttpは、ハイパー・トンマ・トンチンカン・タコ・( ´,_ゝ`)プッの略かな
400 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 15:27:50.06 ID:o5RjmHqkd.net] >>397 アセンブラやりたいってこと? というのと同じ話。 InternetExplorer.Applicationじゃ無くてもみんなgetElementBy使う。 こういう便利なものを放棄するならhtmlのソースを自前テキスト処理で頑張るしかないと思うが。 普通はmsxml2.xmlhttpとかでソース取得して、それをDocumentに入れてgetElemetsByだな。
401 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 17:34:22.53 ID:V5qiYsAI0.net] >>397 その辺は自作ライブラリでビブラートに包めばOK
402 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 18:37:04.65 ID:ZqjiPey8M.net] >>401 > >>397 > その辺は自作ライブラリでビブラートに包めばOK 震わせてどうすんのさ。オブラートだろって釣られた
403 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 18:40:59.82 ID:6iq7bspN0.net] >>400 マジか! xmlがどうとか、APIがないとダメなんだと思ってたわ。
404 名前:デフォルトの名無しさん mailto:sage [2020/09/27(日) 18:44:20.59 ID:6iq7bspN0.net] ん? それだと、逆に何のためにGUI操作(IE制御)の方法があるの? 初心者用?
405 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 07:43:08.08 ID:VRZutR0gd.net] >>403 勘違いしてる。 別のAPI使ってるということだ。 で、別のAPIにもgetElemetByが出てくると言ってる。
406 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 13:09:33.23 ID:LAwWa5+y0.net] RPA的制御がなにかよくわからんが getElementしたくなかったら、API利用してxml取得しろみたいな話を言われたんじゃないか それでAPI使えないけどgetElementしない方法ないの?と 取得できるものがhtmlなら、すなおにgetElementしとけ 以上 ちなみにxmlだろうとhtmlだろうとcsvだろうと、それは多くの場合httpで取得してるだろうがな
407 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 15:51:42.57 ID:m7hqrCGdM.net] >>402 オブラートに包んでもおかしくないか 普通ラップするとかカプセル化するとか言うんじゃ・・・ >>404 どれもhttp通信でデータを取得できる共通点があるだけで、目的はそれぞれ違う IEクラスはブラウザを操作する為のコンポーネントの一部 mshttpクラスはIEがスクリプトでhttp通信をするためのコンポーネントの一部 WinHttpRequestクラスはWindowsがhttp通信をするためのコンポーネントの一部 (コンポーネントっていうのはプログラムの部品として使うのが想定されている小さいプログラムのこと) それぞれ色んなシステムで使えるようにCOMインターフェースっていう取説のようなものが実装されていて、VBAはそのおかげで間借り出来てるだけ どれもVBAの為だけに作ったプログラムではない ちなみにIEクラスの利点として、ブラウザ上でjsが実行されているページにアクセスすることができる点がある
408 名前:デフォルトの名無しさん [2020/09/28(月) 16:26:17.24 ID:gMLgNw+wd.net] それをVBAでやる意味は何? もっと他に簡単に出来る言語でやれは?
409 名前:デフォルトの名無しさん [2020/09/28(月) 16:37:22.01 ID:oE/worxcM.net] 結果をexcelで扱うならVBAが最適では?
410 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 18:37:13.13 ID:jqaTJ4CpM.net] CSVで吐いてExcelで開くだけだろう
411 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 19:21:37.82 ID:JyFvX52s0.net] あーい あーい ああああーい
412 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 21:25:16.14 ID:d76PIxro0.net] 質問させていただきます ユーザーフォームのテキストボックスにフォーカスがあたってる(入力状態)でwindowsのデスクトップがアクティブもしくは他アプリケーションがアクティブを検知することはできますでしょうか? タッチパネルなどでユーザーフォーム外をタッチしてしまった時を検出したいです。 できるのであればご教授願いたい…
413 名前:デフォルトの名無しさん [2020/09/29(火) 00:06:40.59 ID:bEee4vhd0.net] Windowオブジェクトにどんなプロパティがあるんだっけ
414 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 00:29:27.68 ID:zU8eGPuC0.net] フォームのdeactivateイベント拾ってテキストボックスのフォーカス状態見て処理するとかどうかな
415 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 00:32:40.28 ID:zjqvAHva0.net] deactivateは用途が違う
416 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 00:49:54.82 ID:Iz7+ZlTk0.net] HTML, XML, CSV などのスクレイピングなら、 Ruby で、Nokogiri, Selenium Webdriver などが簡単 curl, wget でも、ファイルをダウンロードできるし Rubyで、nokogiri, curl を使った例 require 'nokogiri' html = `curl www.example.com/` doc = Nokogiri::HTML( html ) elements = doc.css( "h1" ) puts elements.first.content #=> Example Domain
417 名前:デフォルトの名無しさん [2020/09/29(火) 06:58:50.11 ID:iE38wEdU0.net] 外部プロセスの起動、待機、出力の取り込みまで実装してくださいよ
418 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 09:56:21.75 ID:UZS7qkIf0.net] Rubyの自動運転は使いやすかったけど 早々にサポート切られたから印象悪い
419 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 11:55:53.23 ID:NIgnBYPca.net] >>413 調べて見ましたがそれっぽいものは発見できませんでした… >>414 >>415 さんのおっしゃる通りブックやユーザーフォームのDeactivateイベントでは機能しませんでした。
420 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 23:34:39.45 ID:Rcn+G4xKd.net] VBAでやる意味? VBA以外だとアホな操作が必要だぞ。 1.Excelを閉じる。 2.他言語で実行。 3.csvをExcelで開く。 全くアホらしい。 運用についての考え方がまるで違う。 他言語でやる場合ってのはバッチ処理なのか? それしか無いのか? そういうブツ切りでデータ加工していくというなら寧ろExcelなんぞ使わん。
421 名前:デフォルトの名無しさん [2020/09/30(水) 00:00:14.29 ID:BPaZHsLq0.net] >>407 jsしたかったらIEするしかないのね。 今時のHPほぼ全滅じゃん。
422 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 00:36:25.50 ID:5bnpK3a00.net] >>419 WINAPIでポーリング https://i.imgur.com/NQMR2Km.png
423 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 06:50:20.08 ID:RkFeWfqX0.net] イルカのカイル
424 名前:デフォルトの名無しさん [2020/09/30(水) 16:18:36.41 ID:7F4wikGt0.net] >>419 そのマルチタスク、マルチウィンドウを否定したい理由は何なの?
425 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 16:57:41.88 ID:QOxpj5qw0.net] >>424 フォームのテキストボックスに機器の計測値が入るようになっており テキストボックスにフォーカスがあたってない状態で計測値が送られてくると値が取れないのでおじーちゃんたちにも気づくようにフォーカスが離れた時に警告ユーザーフォームを出したいのです。他アプリケーションなどを立ち上げる事も想定されます。 >>422 情報ありがとうございます 画像の通りやってみましたがイルカさんは働いてくれませんでした…
426 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 20:43:21.94 ID:2p9V72Q+M.net] >>425 アホとしか言えんわ そもそも設計が間違えてる
427 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:46:10.98 ID:d9KXZKY60.net] >>425 値を入れる部分を直せよ
428 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 22:51:09.04 ID:wQcBlxXT0.net] RPAとか使ったらこんなおぞましいものができたりするのかな? でも普通はExcelぐらいサポートしてるよな。。。
429 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 23:05:33.83 ID:FnwBo45S0.net] むしろRPA向きの案件だと思う
430 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 01:07:42.33 ID:lGabW6tFM.net] >>425 > フォームのテキストボックスに機器の計測値が入るようになっており wの前にデータ取得しとるわなw >テキストボックスにフォーカスがあたってない状態で計測値が送られてくると値が取れない wそんな業務データを取りこぼすとか意味不明w >のでおじーちゃんたちにも気づくように wなんだ?老害か?w
431 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 01:18:01.34 ID:eVzeZjSn0.net] 意味がわからないなら黙ってればいいじゃない
432 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 07:38:17.90 ID:v/kjpRq5M.net] 業務用ツール作るのってホント大変よな…… 使いたい人向けに配信するんじゃなくて、使わされる人に使ってもらうツールだからどんなに優しいUIにしても平気で想像を上回るイレギュラーな操作して動かなくなった!ポンコツめ!みたいなクレーム出してくる人もいるし 単純に新しい物を使いたくないからってワザとメチャクチャな操作したりもしてるんだろうけど ツールを要求してくる上の人達は現状の環境で対応出来るようにしたいからExcelのマクロでどうにかしてよ!とか言ってくるし、VBAはなんでも出来る魔法のツールだと思ってるし 長々と愚痴ってスマンな スレチだよな
433 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 07:49:06.10 ID:H0TKMoBwd.net] Windowsの標準のユーザーインターフェイスを意識しないと、使いやすいと思ったものが結局つかいにくくなる。 フォーカスがあたってなくても計測値が取れるように作るという発想が無いのが厳しい。 そんなこと出来ないなら根本から違うユーザーインターフェイスを採用すべき。 こういう処理でユーザーに何かさせる必要は無い筈。
434 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 10:04:49.32 ID:+ML6JMtp0.net] 初心者がツール作るように言われたら大変なんだろうな、俺は大変だと思ったことないが
435 名前:デフォルトの名無しさん [2020/10/01(木) 10:34:23.83 ID:6DJ6J+GDM.net] タブレットでバーコードリーダーのキーボード入力モードでも使ってるんだろうなと想像 COMで操作できるライブラぐらい付いているだろうからそれ使えば解決
436 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 16:54:34.45 ID:Ld5Ou2iR0.net] >>435 まさにおっしゃる通りで作業進捗をバーコードで管理するものを作りました。 次は工程内のチェックシートと計測値などのトレーサビリティです禿げそう とりあえず計測器具も試用で借りてる段階なのでメーカーにライブラリの事聞いてみます…
437 名前:デフォルトの名無しさん [2020/10/01(木) 17:12:49.41 ID:W6bAQtLIM.net] >>431 知ってた
438 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 18:58:16.32 ID:9Yax9dsIa.net] >>434 かっけぇ
439 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 21:36:53.69 ID:dM4yb7Ap0.net] 罫線で囲われてたり、色塗りされたりするセルをマウスでドラッグ移動した時移動した場所は何もなくるなるのを罫線のみを残す方法ってありませんか? 簡単に言うと罫線で作った表の形式を保持したい。
440 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 21:50:29.37 ID:5ESnmk3DM.net] >>439 テンプレートを隠しシートに保存しておいて、 ボタン押下で書式をコピペしてくるってどう?
441 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 22:00:05.10 ID:gLHdGUpR0.net] >>439 切り貼りじゃなくてコピーアンドペーストした後に元のところの数式と値をクリア(右クリック+N)すればよいのでは
442 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 23:26:28.37 ID:ywfP0KwV0.net] changeイベントで常に罫線引くことしか思いつかん
443 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 23:48:07.63 ID:2OGRwJxy0.net] 移動できないようにする
444 名前:デフォルトの名無しさん [2020/10/02(金) 01:42:30.77 ID:MWdBgx4Q0.net] セルをマウスでドラッグって何だよ? エクセルで将棋でもやるの?
445 名前:デフォルトの名無しさん [2020/10/02(金) 01:43:49.39 ID:ChxT/cO/0.net] >>425 それExcel VBAでやるものではない。 自分のやりたいようにやりたければ、Windows SDKでの開発をしてください。
446 名前:デフォルトの名無しさん [2020/10/02(金) 01:49:29.59 ID:ChxT/cO/0.net] >>439 そもそも手順というものを考えた方がいい。 移動する前の情報を移動先には持ってくるが、移動元にはその情報を適用しないのはなぜ?
447 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 10:09:18.16 ID:A7BNHAQE0.net] 指定したフォルダ内の全てのCVSファイルを配列に追記していき対のですが、コードを教えてください 配列の0列目(1次元目)にはそれぞれのCSVファイルのファイル名をいれたいです。 Sub Sptyou() Dim FolderPath As String, buf As String, TargetDate As String '■フォルダを指定する With Application.FileDialog(msoFileDialogFolderPicker) If .Show = 0 Then MsgBox "キャンセルされました。" Exit Sub End If FolderPath = .SelectedItems(1) End With '■指定されたフォルダ内の全てのCSVファイルを開いて、そのファイルA列からGH列を配列に入れていく ReDim BiforeArraybar(1, 190) As Variant
448 名前:447 mailto:sage [2020/10/02(金) 10:09:56.74 ID:A7BNHAQE0.net] つづき buf = Dir(FolderPath & "*.csv") Do While buf <> "" Open buf For Input As #1 'インプットモードでファイルを開く Line Input #1, TargetDate Do Until EOF(1) 'ファイルの終点まで Line Input #1, Tardt '開いたファイルを上から順に読み込んでいき、変数TargetDateに代入していく If Split(TargetDate, ",")(1) = "" Then Exit Do '配列に追記する ReDim Preserve BiforeArray(Ubound(BiforeArray) + 1 To ??, 1 To 190) = Sprit(TargetDate,",") Loop Close #1 buf = Dir() Loop End Sub
449 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 10:42:45.10 ID:cHoSzh9XM.net] ReDim Preserveで操作可能なのは最右端の次元だけだから2次元配列で1次元目に使いたいなら一旦反転させた状態で操作して出力時にWorksheetfunction.transpose使って吐き出す必要があるぞ いまいち最終目的が分からなかったから取り合えず読んでて気になった所だけ
450 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 10:56:02.65 ID:ooD45Zz30.net] Linux のcat なら、複数のファイルを連結できるけど
451 名前:デフォルトの名無しさん [2020/10/02(金) 12:25:22.61 ID:XdHW2/g2M.net] win dosならcopyで連結できるけど
452 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 12:29:54.55 ID:a296oIK60.net] >>448 内側のLoop内で Tardt ってのが気になった
453 名前:447 mailto:sage [2020/10/02(金) 13:32:21.66 ID:A7BNHAQE0.net] >>449 右端にファイル名を入れるにはどうしたらいいですか? それと、配列のUpperをどう設定したらいいですか?
454 名前:デフォルトの名無しさん [2020/10/02(金) 15:56:01.43 ID:7/1+1goB0.net] また馬鹿な質問者か。それともいつもの厚かましい馬鹿か?
455 名前:デフォルトの名無しさん [2020/10/02(金) 16:13:26.37 ID:XdHW2/g2M.net] 右端の次元と右端の列では話の次元が違うけどわざとやってんのかなー? excelなんだからとりあえずシートに格納すればいいと思うんだけどなー 配列に1行づつ追加するよりはやいんじゃね? VBは動的配列無いんだからパフォーマンス出すには頭を使わにゃいかんよ 行数をキーにしたDictionaryもいいかもね