◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:Excel VBA 質問スレ Part56 ->画像>3枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1534976724/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part55
http://2chb.net/r/tech/1532236398/l50 昔、JAVAでレイアウトというのを初めて知った時、何でこんなゴミ屑な仕組みになってんのと思ったことが有った。 Web系なんかではサイズが変わることが多く、それでレイアウトが崩れることがあるからなんだろうなと思ったが、Excel上で必要になったことは一度も無いや。
エクセルでFormという時点で、あっこいつエクセルが何のツールかわかってないな、一緒に仕事したら大変そうだな、と思われそう
>>4 何の仕事かにもよるけど普通の人はそんなこと思わないよ
エクセルで仕事ですか? エクセルってメモ帳みたいなですよね? あんなオモチャで仕事させられたらバカだと思われますよ
バカじゃ無い方々は何を使ってお仕事されてるんですか?
ここに来てわざわざそんなこと言う人間はExcelに精神を削られた経験でもあるんだろうよ。
削られるも何もエクセルなんてインストールもしてない 必要ないじゃん いつの時代に生きてるの? googleスプレッドで問題なし
世界で一番仕事で使われているソフトウェアを使わない選択肢も有るよな。 そんな会社とは付き合いたくないが。
何のためにわざわざこのスレに来てそれを言わなければならないのか、 についての悲しい物語
世の中にはエクセルに異存せずにクリエイティブな仕事をしてる人はたくさんいるよ 毎日エクセル事務作業ばかりやってると想像できないかな?
>>13 > 世の中にはエクセルに異存せずにクリエイティブな仕事をしてる人はたくさんいるよ
そういう人たちはこんなスレを覗かないだろ w
マジでエクセルなんて必要ねー つかエクセル形式でなんて言われたこともない メモ帳だろ?
それは良かったね。 で、ここはExcelを便利に使おうとする人が集まるスレ。他ツールの話がしたい人は余所でやってね。 邪魔が入ったけど、、PSコードをExcelから呼ぶときはどうしてるの? VBAから呼び出し?
>>11 そういうことを言う人とも付き合いたくないな
>>17 全然困らないから良いよ。
ごくごく稀な、PC使わないような会社とは業種がまるっきり違うんでね。
ビジネス界の常識って話ならそれで良いのに 技術的に比較しようとするから荒れる
で前提条件は変わったの? エクセル以外は何もインストールも出来ない特殊な環境で働かされてる人向けってのVBAだったよね? そんな人は極少数とか言ってたやつ 極少数の人しかVBAって使ってないの?
世間にこれ程エクセルコンプレックスを持ったパソコン博士が居ったとは 正直驚いている
>>21 そういう極限状態ですらPowerShellという強力なライバルがいる
VBAはもはや本気でビジネスに活用するような言語じゃない
もちろんPowerShellがなかった、あるいは普及してなかったXP時代だったらVBAもビジネスで通用した
でも今はもう便利な道具が揃ってる
PSって簡単に1ファイルにできるんだな 1ファイルおじさん涙拭けよ
うちの会社ではPowerShellがデフォルトでは使えないだけど、作ったものは動かせるのかな?
>>28 同じ会社かもしれないだろ、お前の会社のことを言えよ
で、とうやってExcelとPS連携するの? PowerShell押しの人、ノウハウ教えて。 (普段はVBAだけど固執するつもりはないので)
>>29 ここはVBAのスレであってPowerShellのスレではない。
お前、字も読めないバカ?
>>31 だったら最初からPowerShellのことをここで言われてもなと言えよ
会社がどうとかふざけたこと抜かしやがって
>>28 それって会社によるのか?
PowerShell自体が使えない環境でも作ったスクリプトが動くなら
どこか1箇所だけ使える環境を用意してやれば済むんだけど。
>>31 ちげーよ、VBAとPSをどう連携できるのか聞いてんのよ。どっちがいいとかの雑談にはウンザリだけと、出来る範囲を広げるのはいいだろ?
なのでPS押しの人たちが普段どうしているか知りたいわけ。
PSを煽る気満々のやつにわざわざ教えるわけねーだろ
Powershell利用のマルウェアが多いため、Powershellはセキュリティリスクという考えの社が多い。 やっと去年のWin10からかなり監査が出来るようになったので、今後は順次開放されるのではと思うが
PSめんどくさいんだよ
バッチファイルと同じで、なんか変なとこで管理者権限が必要だったりするから、
一般事務の子に「これダブルクリックしたらok~」とか気軽に言えない
https://ledsun.hatenablog.com/entry/20120325/1332642151 何だかんだで気軽に扱えるのはVBSとvba
特にエクセル+vbaの相性が良すぎてサクッと使い捨てコード書くならこれ以外考えられない
PowerShell(PS) で、Excel を起動して読み書きするとか、 PSで、データベースからExcelへ、データを読み込むとか
>PowerShell(PS) で、Excel を起動して読み書きするとか、 これは最悪 素直にvbaで良い
>>27 動く
>>30 好きにすればいい
https://github.com/dfinke/ImportExcel ここ充実してるので参考にするといい
>>37 んなこと言ったらVBAもなにもかもリスク
メールで気軽に送受信してしまう1ファイルVBAは比較的リスクが高いと言える
>>38 管理者権限は不要
>>39 VBAはブックに埋め込んでブックを開かないと動かせないから面倒くさい
VBAの最大のデメリットは 自分: プログラム書けます! 他人: C#? Java? 自分: ......... 恥ずかしくてVBAだって言えない事 今時VBAってwww
>>41 なるほど基本、外部から起動して一処理完結型の目的に使うイメージですね。ボタンやイベント駆動に割り付けるのではなく。
リンクありがとう。ちょっと覗いていろいろ遊んでみます。
>>44 思わず反応しちゃうということはさてはお前VBAしか使えないな w
vbaって普通、事務用途なんだから他言語使える人は少ないよ
外部から起動するのがダメダメだろ。 それだったらどんな言語でもOK。 C#とかにするね。 昔、VBAからShellで別言語で作ったプログラムを呼び出して、そのプログラムが特定のテキストファイルを残して終了するまで待ってからVBAでテキストファイルを読み込むなんてかっこ悪いことしてたことが有るんだけどPowerShellも同じ匂いがするんだよな。 .netのフォームが使えるのは良いかもと思ったけど、ここでも同じ匂いがする。 VSTOの方がよっぽど良い。
UI部品やイベントでゴテゴテに装飾したエクセルGUIを使う場面ってビジネス上そんなにないよね
>>48 発想がチープっすね
おじいちゃんPGが好きそうな構造
Powershell(またはバッチ),vbsは必須だろ...単なるファイル処理にVBA書く奴の気が知れん
>>51 そう。
だからVBA標準のフォームで十分。
>>53 そう。
Excelが絡まないなら他言語の方が良い。
でもここはExcelVBAのスレなのでExcelが絡むのが基本。 そうすると他言語はどれもダメダメ。 Excelから起動出来ないとか、かっこ悪い匂いしかしない。
>>54 ?
.netあるのになぜエクセルでフォーム?ギャグなの?
>>57 バか?
Excel上で使うフォームのことを言ってるんだが。
そこに.netの高機能なフォームなんて必要無い。
>>47 俺はexcelでやる作業を楽したいからVBA覚えたけど(関数覚えるようなものだし)、他のプログラム言語なんて大学生のときに教養の授業で少しやっただけで、必要なかったし、今後も全く必要ないと思う
エクセルは多くの一般人に便利に使われている一方で、多くのプログラマに嫌われている言語ですね
>>60 嫌われているのじゃなくて碌にプログラムが組めない奴、もしくは他言語の初心者が自分能力の低さが悔しくて憂さを晴らしやすいのがVBAなんだろう。
PowerShellからインタラクティブにExcelいじるのが便利 VBAって対話的に実行できないんだよね
そりゃ、今でも何でもコマンドラインの方が良いという人はいる。
対話的インタフェースってあまりありがたくないけどな
みんな好きな方法でやれよ。 外からのコントロールも覚えれば幅も広がるかな?勉強しよっと。 でも、Excel介さずにファイル操作するほうが効率的ってならこのスレに関係ない話だな。 全く関係ないスレで暴れてる人たちって何がしたいんだろ。 好きな方法で好きなことさせればいいのに。
>>62 さすがにそれは・・・イミディエイトウィンドウ知らんの?
流れを読まずに、、皆さんListObjectって使ってます? Oracleとかからクエリするとできあがるアレ。 2007あたりからの機能だと思うけど、慣れないから範囲に変換して独自のアクセス方法で使ってた。 もしかしてリストで表組みすればプログラムでスゲー便利だったりします? ここが便利とか、こんな使い方があるよ、ってのがあったら教えてください。
>>67 自分は作業をイミディエイトウィンドウでこなすことが多いんだけど、
あれって対話的インタフェースっていうもんなの?
イミディエイトで日常作業とか苦行だろ 冗談キツイよ
みんなが作るvbaのUIってどんな感じなの?
俺はいつもこう。設定縦一列に並べてボタン押せばokって感じにしてる
イミディエイトウィンドウを対話的インタフェースってのは面白い言い方だな ただ、あれは普通のコンソールとしか呼ばないと思う
>>68 知らなかった
テーブルをobjyect扱いにしているのか?
便利そうっちゃ便利そう
ここにいるVBAerってPSerよりVBA知識少ないみたいだな ListObjectも知らないとかまじかー
>>74 そもそもテーブルをvbaで触ることがない
システムから吐き出されたデータをvbaで集計して、vbaで体裁整えて、vbaでファイル分割してコピーして、vbaで所定のフォルダに入るようにして終わり
ListObjectとか頑張って使う人は結構たいへんな環境だと思う
PSでの対話的処理って具体的にどんなするの?(定義に行き違いがありそう)
>>74 お?詳しそうだね。
便利な使い方があったら教えて!
>>70 なんで?
環境を整えればワンライナーでガシガシいけるyo!
>>78 指定フォルダを再帰的に検索してファイル名が*.csvにマッチするCSVファイルを列挙
各CSVからX列, Y列, Z列を読み取ってD := (X^2 + Y^2 + Z^2)^(1 / 2)を計算する
Dの大きい順に並び替えてX, Y, Z, Dを新規Excelブックに出力して
出力した全行をテーブルレイアウトに変更する
例えば↑のような処理があったとしてイミディエイトのワンライナーだとどういうコマンドになるの?
ぼくが考えた目一杯難しいプログラムみたいでワロタw平和やなあw
>>80 え? VBAユーザーの感覚だとこの程度の処理が難しいの?
>>81 ファイルの検索、解析、整形、出力なんて日常茶飯事だろう
こんな典型的な基本パターンすらワンライナーで書かないならなにをワンライナーで書くんだよ
マウンティングワナビー剥き出しのナイーブなレスでワロタw平和やのうw
やっぱりイミディエイトじゃ大したことできないじゃん
いやまあ向き不向きはあるでしょ 不向きなもの取り上げてダメだというのは自作自演ですよん
>>79 ごめんなさいごめんなさいそれはワンライナーでは無理でした
実力もないくせにワンライナーとか言ってごめんなさい
>>82 ちなみにPowerShellではどう書くんだい?
なんやワナビーwせっかくのマウンティングチャンス見送ってまうんかw
ごまんなさいオレには無理でした教えてください そういう関数を作ってイミディエイトから呼び出せばそりゃできるけどそれじゃワンライナーとは言えないですよね...
gci . -Recurse -Filter *.csv | % { ipcsv $_ } | % { $_ | Add-Member -PassThru -MemberType NoteProperty D ([math]::sqrt([math]::pow($_.X, 2) + [math]::pow($_.Y, 2) + [math]::pow($_.Z, 2))) } | Sort-Object D -Descending | Export-Excel -Now
>>90 うおおおおおおwwwwwwwwwwwwwww
って試してないけどそれっぽいから驚愕しとくぜ!
ってかvbaってそもそも
「提携業務の自動化」
がコンセプトだと思うんだけど、
そこにワンライナーを持ち出す意味がわからないぜ。やれるならすげー!って思うけど、エクセルのファミコンエミュみたいな大道芸と変わらん
>>79 冷静に考えたら「新規Excelブックに出力して~ 」の部分を除けば
イミディエイトウィンドウ上のワンライナーでもいける気がしてきた
>>90 ん?
X列, Y列, Z列ってなんの事だ?
>>91 自動化はプログラミング言語共通の目的なので、VBAのコンセプトと言うにはビミョー
というか大道芸に見えるか?
ファイル漁って解析して整形して出力ってごく日常的な作業だから、大道芸でも何でもないし、
息吸って吐くみたいな作業をいちいちスクリプトファイル化したくないので、ワンライナーで書くんだよ
>>93 X, Y, Z
1, 2, 3
1.5, 0, 100
こういう形式のCSVがあると思ってくれればいい
何かPowerShellユーザーが哀しくなるようなレベルの奴が来てるな。 そんな簡単なものを自慢して何になるんだ? PowerShellってのはそんなに使えないもんじゃ無いだろうに。 見た瞬間に組めると思うかどうかだよ。 簡単かどうかってのは。 ワンライナーかどうかは関係ない。
まだマウンティング終わっとらんのかよw 最近はダラダラ時間ばかりかけて主旨のようわからんアホが多すぎるわ
>>96 自慢に見えるならキミの潜在意識では、なんかすごいことやってるな、って感じてるってことだろうね
でもこの程度で自慢してるとか言われてもネ
呼吸することを自慢する人間はいない
ブルーボトル日本開店おめでとう。西海岸で飲む、いつもの味。僕にとって新鮮みがないことが、成功の証だと思う。
>>99 > 呼吸することを自慢する人間はいない
そうだな、呼吸することをいちいちこんなスレに書くやつもいないわな w
>>90 おお、便利そうですね。勉強になります。
Excel絡んでるの、最後のとこだけ?
PowerShellも腰据えて勉強しようかな?
でも、ここVBA質問スレなので、別スレに分かれてるとうれしいな。 Excel PowerShell 質問スレ とか作ってそこでご指導いただけると ありがたいです。
>>79 そういう複雑なものは、PowerShell では難しいから、Ruby を使う
Dir.glob('C:/Users/Owner/Documents/Ruby/test/**/*.csv') do |file| # 再帰的に
next if File.directory? file # ファイルだけを処理する
CSV.foreach( file ) do |row| # 各行
# row[0] ~ row[2] (列0~2)を使って計算する
end
end
>>104 > 新規Excelブックに出力して
> 出力した全行をテーブルレイアウトに変更する
要件満たしてなくない?
>>79 >>82 これVBAはおろか、そもそもエクセル案件ですら無い件。
せめてファイル形式くらいxlsxにしないと・・・
>>106 ?
新規Excelブックに出力して出力した全行をテーブルレイアウトに変更する
て書いてあるじゃん
Excelから始まってExcelに終わる Excel以外の外部環境とは隔離 これがエクセル案件 VBAはエクセル案件のためにある
>>108 データ量を考えた場合、RDBとの連携は認めても良いとは思うのだけどね。いちいち
>>104 みたいにRubyを持ち出すバカは別にして
>>110 認めたら他の言語が優位になってしまう
エクセルでやるならエクセルだけで完結させる
これは絶対的なルールで例外は認められない
普通にdll作ってexcelからdllの関数読んで作るような案件ないくらでもあるかな 追うのが困難な知恵遅れ大量クソVBAを知恵遅れが書くのを防止することもできる excelでvbaを書くぐらいしかできない知恵遅れ無能に できるだけ余計な事をさせない事前策にもなってる
自分用のちょっとしたツール スプレッドが必要 操作補助が必要 補助の内容が複雑->.NET(COM)+VBA(イベント, フォーミュラひも付けのみ) 補助の内容が単純->VBA 操作補助が不要->自分の環境で使用可能な任意の言語 スプレッドが不要->自分の環境で使用可能な任意の言語 他人に配布するツール 依存関係(※1)が揃っているとわかっている->その依存関係で使用可能な任意の言語 依存関係(※1)が揃っているかわからない->PowerShell 2.0 ※1 Excelは依存関係の1つと数える
RDBとの連携 ← 必須 dll作って呼ぶ ← 普通にやる テキストファイルの読み書きをする ← あんまりやらない
>>99 呼吸することをわざわざ宣言するバカはいない。
なんでPowerShellバカばかり来るんだろう。
実際、VBAじゃどうにもならないこともある。 なんで他言語自慢はVBAでも出来ることばかりなんだ? 他言語でもレベルの低い奴ばかり来てるんだろうな。
>>115 呼吸みたいなこともできんので驚いたって話だよ
自分から驚きにいってあえて驚いたと言いたがるアホw
VBAの何が良いって、適当に書いたプログラムを他人に渡しても、受け取った人(IT系では無い一般事務員)がその場で治せることが一つのメリットだと思う。 Powershellみたいに一行に何でもかんでも押し込まれたら、読めるもんも読みたくないわ ましてや電話越しにデバッグして貰うとかVBAか関数にしか無理
>>119 別にパワーシェルやから一行に何でもおしこめる訳ちゃうわw
ワンライナーに童貞を奪われた厨房ってのは何時の時代も一定数おんねんw
ワンライナーは人に渡すもんではなく、自分用だよ、きちんとps1ファイルに書くことも可能
試しに同じ処理をVBAで書いてどっちがわかりやすいか、変更・拡張しやすいか、比べてみませんか ハンデとしてワンライナーじゃなくても構いません VBAユーザーの皆さんさあどうぞスマートなコードを書けるものならぜひ書いてみてください もちろん尻尾巻いて逃げるのは構いませんがそんな情けない人はここには居ないと信じています
>>123 >>79 の話? ああ良いですよ書いてあげましょう
>>125 その意気です
さあ書いてください
他の様子見してるチキンの皆さんも参加しても構いませんよ
>>117 呼吸みたいなことをわざわざ書くとか驚きなんですけど w
できました Files = ReadCsvFiles("*.csv") Data = ReadCalcPower(Files) Sort Data, "desc" ExportExcel Data
>>127 例えば隣に座ってるおじさんが呼吸してなかったら驚くし声をかけるだろう?
ねえねえVBAくんさっきから息してないけど大丈夫?生きてる?
まあだいたいそういう感じ
powershellは凄いぞ!ワンライナーで何でも掛ける! って言ってる奴が出てきた時はまともなpowershellユーザーがちょっと可愛そうではあった
>>131 PowerShellと粒度を揃えましてん
VBAの書き方がわからないおじさんに教えてあげましてん
>>130 まともなパワーシェルユーザーなんか居らんわwバカかとんでもないバカだけやw
>>128 素晴らしい
ReadCsvFiles、ReadCalcPower、Sortの実装が見えないけどバグかな?
誰とは言わないけど負け犬敵前逃亡兵がきゃんきゃん吠えとるのw
>>135 バグではないよVBAではこのように抽象化することで
コードをわかりやすく書くの
PowerShellでもExcelExportがどうなってるかは見えないよね
それと一緒
検証できないから意味がない
>>90 は誰でも検証可能
今までそーっとしといたけどVBAにソートないんだよね
>>138 検証してやるから全部のソース出してよ
Export-Excelもそう、Sort-Objectもそう、それらのソースコードを
提出していただこうか、粒度を合わせるんだよ
>>139 ソートはないよ、自分で作るなりネットから拾ってくるなりで
ここ来るとVBAのおかげで飯が食えてる俺は先が無いなって思わされる
>>143 長すぎて読む気にならない
無駄なものを貼るな
>>145 あれれーキミも言い訳して逃げちゃう人だったんだ
>>146 僕は一切言い訳をしないし逃げることもない
ずっとここにいる、君はなぜここに居る
>>149 僕が言ってることには完全に筋が通っている
粒度を合わせることによってVBAとPowerShellの比較を可能にして
VBAのコーディング方法をPowerShellユーザに伝授した
もっと丁寧なお礼をいただいても良いと改めて読み返してそう思った
>>150 えーつまりVBAのコーディング作法では
未定義の関数を呼び出してエラーが出るのを眺めるのが正義、ということですか
流石vbaerは言うことが一味違いますね
>>151 誰もそんなこと言ってないですね
あなた誰ですか?
というかことの起こりは
>>79 このレスだぞ
このレス自体はPowerShellとは無関係な純粋なVBAの質問だろ?
そのあとでPowerShellだとどうやるのと聞き返されたから答えたまで
ということで純粋なVBAの質問である
>>79 への解答を待ってます
VBAでは実現不可能でしたら解答しなくても結構です
>>153 VBAで実現可能です
純粋なVBAの最終解答をお示しします
Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
>>154 動きませんでした
嘘をつかれては困ります
ワークシートの名前を変更するにはどうしますか? VBAでどうやるのか聞き返されたら答えるまでですけど PowerShellではどうやるのか教えてください
>>155 だったらPowerShellのプログラムも僕の環境ではピクリともしません
それを嘘つきというならPowerShellの方が嘘つきです
>>156 $app = New-Object -ComObject Excel.Application
$book = $app.Workbooks.Open($targetFilePath)
$book.Worksheets($targetSheetIndex).Name = "NewName"
$book.Close($true)
$app.Quit()
こちらは答えましたよ
あなたもはぐらかさないで真面目に
>>79 に答えてください
>>159 VBAではこうです
ActiveSheet.Name = "合計"
ワンライナーで一撃です
>>79 に答えます
VBAではこう書きます
Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
>>160 あなたのコードには致命的な欠陥があります
対象とするブックを手作業で開かなければならなりません
これでは自動化を検討する程度の数のブックを相手にした時に間違いなく腱鞘炎になってしまいます
>>79 への解答は不適切です
このコードには未定義の関数・サブルーチンが含まれているため動作しません
関数・サブルーチン化するならその実装も解答に含めて下さい
確かに、なんでもワンライナーで出来るかのような表現を使うよね、Powershellユーザー。 多分、そうは書いてない、思い込みだろうってレス着くと思うけど。
PowerShellとCOMってGCの方式が違いますよね
一方は世代別GC、一方は参照カウント
GC方式の違うものを混ぜるとメモリリークしますよ
>>159 はメモリリークしますよ
>>162 あなたの主張はデタラメです
パワーシェルはワンライナーであらゆる処理を書けるほど表現力が高く、基本ライブラリが充実していることは確かに事実ですが
だからと言ってなんでもワンライナーで書くわけではありません
パワーシェルのユーザーは
1つのコマンドで1つの仕事を上手くこなす
コマンドを組み合わせて大きな複雑な仕事をこなす
というシェルプログラミングの良い習慣をもちろん知っています
論より証拠ということで
>>143 のリンクをみてください
>>163 しませんよ
リークするなら証拠を提示してMicrosoftに報告してください
>>161 いま開いてるExcelのシート名変えるってことなら問題ないですよね
じゃあそれで、むしろそれで
現在開いてるExcelのシート名をPowerShellで変えるにはどうしますか?
>>99 > 呼吸することを自慢する人間はいない
↓
>>129 > 例えば隣に座ってるおじさんが呼吸してなかったら驚くし声をかけるだろう?
こんな脈絡のないことを言い出してて驚くわ
まあ気味悪いから対面してたら放置するけど w
>>166 マイクロソフトも認識してます
だから.NETにはReleaseComObjectという
COMのためのメソッドが用意されてます
あなたのコードにはメモリリークのバグが存在します、僕はあなたにそれを報告します
>>167 [Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application').ActiveSheet.Name = "NewName"
逆に聞きますが、エクセルが起動していない時に、指定のブックの指定のシートの名前を変えるVBAコードは、どうやって書けばいいのですか?
>>170 まずExcelを起動します
開発のボタンを押してマクロエディタを起動します
そしてワンライナーの一撃コードを実行します
これがVBAの正規の手順です
[Runtime.Interopservices.Marshal]::GetActiveObject('Excel.Application').ActiveSheet.Name これ暗記してるん? すごい
便乗で聞きたいんだけど powershellでVBAの定数はそのまま使えるの?定数をCOMか何かからロードしたりするの? あと名前付き引数とかどう処理するの?
>>169 ReleaseComObjectは速やかに参照カウントを減らすためのものです
それを実行しなくてもGCやプロセス終了時にリソースが解放され参照カウントも適切に処理されるので安心してください
明示的にReleaseComObjectを呼ばなければリークする、などという危険な状態を主力商品の1つである.NET上で放置するほどMicrosoftは怠惰ではありません
>>171 それでは手間が多すぎます
おそらく手作業でシート名をクリックして名前を入力する方が早いでしょう
>>173 証拠の提示をお願いします
メモリリークの場合最低でも次の3つは欲しいですね
再現性のあるメモリリークを起こすコード
メモリを測定するコード
あなたの環境で測定したデータを分析したレポート
>>175 参照カウントじゃないから参照なくなってもGCが動くことが保証されないですよ
プロセスがすぐ終了するかも仕様次第ですし、博打プログラミングですよ
GCの方式が違うからこれは技術的にどうしようもないんですよ
怠惰ではないです、むしろマイクロソフトは頑張ってる方ですよ
実装者の知識と努力に期待せざるを得ないのは宿命です
>>177 こう考えてください、VBAを書くときExcelは起動してるんです
マクロエディタも起動してるんです、手間なんて何もありません
手作業では大変なことを行おうとしてるさなかのシート名変更ということですね
>>178 GC方式が違う、それが証拠です
PowerShellにデストラクタが存在しないことが
GC方式が違うことの証拠です
GC方式とソースコードからメモリリークは明らかです
明らかなものに調査はそれ以上の調査は必要ありません
>>179 すぐには回収されないだけとリークするの間には深い溝があります
遅くともある時点までには解放されることがわかっているわけですから、博打でもなんでもありません
.NETにはそれをコントロールする術も用意されています
>>182 コントロール術が用意されてるならそれを使ってコードを書いてくださいよ
解放されることはわかりませんよ、.NETでGCが行われることは保証されません
.NETにはデストラクタがないでしょう? それが証拠です
>>180 いいえ
残念ですが起動していないことの方が多いでしょう
もし起動していたとしてもシート名を直接変える方がマシです
excelのマクロの効率的な書き方について相談できるサイトってどこかにある?仕事の話なのでこういうところに公開することはできないので…
>>181 支離滅裂で全く明らかではありません
GCでインスタンスが回収されると自動的に参照カウントが適切に処理されます
したがって何もせずともリークは起こりません
回収が少し遅れるだけです
>>184 Excel VBAを実行するのにExcelファイルが開いてない??
支離滅裂ですね。
>>183 [GC]::Collect()
CLRではデストラクタではなくファイナライザがサポートされています
ご安心ください
>>188 ドトネトーは世代別GCなので1回実行しても回収される保証はないですよ
>>187 あるブックのあるシート名を変えたいと思った時にエクセルが都合よく開いているとは限りません
>>188 Object.Finalize メソッド (System)
https://msdn.microsoft.com/ja-jp/library/system.object.finalize (v=vs.110).aspx
| ガベージ コレクションは非決定的であるため、ガベージ コレクターが終了処理を実行すると正確にわかっていません。
| リソースを解放する、すぐにこともできますを実装する、 dispose パターンとIDisposableインターフェイスです。
マイクロソフトも半分支離滅裂ですがファイナライザの使用が非推奨なことが読み取れます
IDisposableインターフェースが用意されてるくらいです
>>190 引数なしのCollectはすべてのジェネレーションのガベージコレクションを直ちに強制実行します
>>191 Excel VBAを実行するのだからExcel ファイルは開いてますよ。
指定のファイルが開いてないってことを言いたいの?
その場合の処理はあなたのPower shellのコードと大差ないけど。
でもそれを呼ぶ前に全部のメモリ参照をなくす必要があります それってできますか? PowerShellの変数スコープは変態ですから 事実上不可能です
>>192 MSDNの翻訳が酷いことは有名なのでそれは我慢しましょう
リソース解放の時期をコントロールしたいなら決定的なIDisposableを使ってください
決定的でなくても問題がないならIDisposableに頼る必要はありません
スクリプトの利用形態から考えるとプロセスの寿命は非常に短くなります
これはエクセルインスタンスが本当に必要なくなった瞬間とプロセスの終了が時間的にほとんど離れることがないということです
このような場合では決定的な解放にこだわらなくても問題にはなりません
>>195 私の書いたコードでは指定のブックを開く必要がありません
>>197 そうとも限らないと思います
スクリプトを使うということは手作業での作業が煩わしく
それを効率化したいという欲求があるためです
スクリプトを書くとき、その時は常に手作業を躊躇する程の事態が発生している
状況と考えるべきで、ある処理がメモリを使んで離さなくて別の処理が
完了できないという経験を僕は山ほど経験してきました
メモリ管理を甘く見ると痛い目を見ます痛い目を見ます
>>198 パワーシェルのスクリプトを作成して
コマンドプロンプトを起動して
コマンドを入力する必要があるじゃないですか
その時間使ってExcelを起動しましょう
VBAなら一撃です
>>196 処理を適切に構造化して変数のスコープを無闇に伸ばさなければ、自然と不要な変数の参照は辿れなくなります
そして先ほども書いたようにスクリプトはプロセス全体の寿命も短くなりやすいので
変数のスコープはそれほど問題にはなりません
どうしても変数をクリアしたいならClear-Variableというコマンドレットがあります
個人的に使う機会がないコマンドレットですがスコープとワイルドカードを指定してまとめて変数を消去でるそうです
>>198 >>156 $app = New-Object -ComObject Excel.Application
$book = $app.Workbooks.Open($targetFilePath)
$book.Worksheets($targetSheetIndex).Name = "NewName"
$book.Close($true)
$app.Quit()
ファイル開いてるけど、頭おかしいの?
>>199 シビアなリソース管理が必要ならその時に適切なコードを書けばいいでしょう
なにもすべてのスクリプトを怠惰に書けと強制しているわけではないのですから
ですがほとんどの日常作業でそこまでシビアなリソース管理が要求されることはありません
それとリソースの不足は非決定的なリソース解放よりも非効率的なアルゴリズムが原因で発生することが多いということは知っておいた方がいいでしょう
>>201 あなたの書いたコードは名前を変えたいと思うたびにブックを開かなければなりません
シェルを1度起動してパラメータを変えるだけとは訳が違います
>>203 開いているのはプログラムです
手作業で開くのとは全く意味合いが異なります
というか話を戻しますが
>>79 への解答はまだですか?
どうやら関係ないPowerShellの質問を繰り返して話をそらして逃げようとしているようですが忘れていませんよ
>>207 失礼な、僕は逃げも隠れもしません
>>79 に対する解答をお示しします、ご査収ください
Files = ReadCsvFiles("*.csv")
Data = ReadCalcPower(Files)
Sort Data, "desc"
ExportExcel Data
>>204 アルゴリズムが大事なのは知ってますが
スクリプトでExcelを操作するときには計算量を気にしなければ
いけないほどのアルゴリズムを使うことはありません
やることはせいぜいシートの名前を変えて
コピーして集計して並べるくらいでしょう
問題はリソースリークなんです、関数を作りまくって
GCを呼びまくりますか? 僕の目にはそれは狂気と映ります
>>205 VBAでブックを開きたくなりましたか? 教えましょう
Workbooks.Open "C:\Book1.xlsx"
一撃です
VBAは一撃です
プロセス終了で必ず開放するんだから必要ならそういうスクリプト書けばいいんじゃないの powershellに限らずリーク問題を解決するためにプロセスサーバ的な構成にしたりするけど
>>189 あ、想定してたのはフェイスtoフェイスで相談かメールで相談する形式なんだけれど、そういうのはやってないかなあ?
>>206 えっとまさか、実行に必要なファイルを全部手で開かないといけないと思ってたの?
バカ丸出しですね。
PowerShell から、Excel, IE とかは、別プロセスを起動するだけだろ? シェルって、別プロセスを起動するものだろ? GC のやり方の違いなんて、関係あるか?
VBAの質問です 指定フォルダを再帰的に検索してファイル名が*.csvにマッチするCSVファイルを列挙 各CSVからX列, Y列, Z列を読み取ってD := (X^2 + Y^2 + Z^2)^(1 / 2)を計算する Dの大きい順に並び替えてX, Y, Z, Dを新規Excelブックに出力して 出力した全行をテーブルレイアウトに変更する というプログラムを作りたいのですがどのように書けばいいでしょうか?
>>215 Excelに出力するって内容を足したのかw
しかもワンライナーって条件を外したのねw
その内容をPower shellのワンライナーでどうやるんだろうねw
>>216 >>79 と同じだよ?足したのは「VBAの質問です」だけ
>>208 >Data = ReadCalcPower(Files)
ここだけは許さんw
頭の悪さを全力で競い合ってるスレがあると聞いて飛んできた どれも最底辺レベルで甲乙つけがたいな
大昔何かの雑誌でBASICで一行ゲームとかネタでやってたのを思い出した
>>90 こんなの処理系にパイプ処理があるかないかだけの違いだろ
一行記述できるかどうかは、一行に記述できる最大文字数に加えて
パイプで記述できるか、一命令の区切り記号が設定してあるかくらいで決まる
区切り記号は、C系(C#)では;か}、昔のBASICでは:があったしLISPなんかは括弧で区切ればいくらでも書ける
ワンライナーなんて対話的に使う時に一々スクリプトを立ち上げたり面倒なので使うもの
可読性が悪くなるだけなのでプログラムで絶対に使うもんじゃない
昔のPCのメモリも少なかったのでそれなりに意味はあったんだけど捨てられた
今ではせいぜいネタ、言語のの優位性とは完全に無関係
Excelらしくやるならインポートが先かな 1. インポート_CSV 2. 追加_数式列 3. ソート_数式列 4. 変換_テーブルレイアウト Excelのパワーをフル活用したいものだね
>>212 僕らの田中さんにお仕事依頼してみるとか
Office TANAKA - お問い合わせ
http://officetanaka.net/mail/index.htm >>221 流れるようなインターフェースとかパイプラインを使ったワンライナーはモダンなプログラミングでは常識的なテクニックだよ
太古の時代から時が止まってるVBAのユーザーは知らないかもしれないけど
例えばc#のLinqやJavaのstreamなどはもろにパイプラインから影響を受けてるよね
VBAしか使わないのかもしれないけど少しは興味もって知識をアップデートしたら?
>>226 VBAにそんなの必要無い
ただの事務員にStreamなんて理解できるわけないだろう
>>224 低レベルの先頭切ってるのはお前なんだけどw
>>227 必要あるなしでいったらなにも必要ないよ
手作業だけでも仕事はできる
そうじゃなくて、より良い方法はないか?って模索していくことが大事なんだろ
つーか事務員がstreamを理解できないなんてのも決めつけでしかない
所詮は部品の組み合わせだから、手続き型のアルゴリズムを理解するよりずっと簡単だよ
簡単で効果的だから様々な言語が挙って似たような機能を導入したんだ
>>228 の割にはVBAコードが何にも出てこないよな
低レベルのPSerが息をするように簡単に書ける処理を
これだけ時間をかけて答えることができたVBAerがまだ一人もいないってちょっとレベル低すぎでしょ
>>230 開いているのはプログラムです!
だってw
コードうんぬんの前の話ですね!
ID:4dFHA/W/ こいつなんなの?誰にも無益なレスばかり
>>231 確かに
VBAerはコードを絶対に書こうとしないからコードがどうこう以前の問題なんだよな
意見するのはかまわんけど最低限、コードを書いて実証してからにしてほしいよね
コードも書かずに意見しても、うちで修行すれば空飛べるぜー、とか豪語する真理教のおっさんと大差ない
まさに戯言になってしまう
なんでvbaerさんまずはコードを書きましょう
>>79 への解答待ってます
ユーザー系の仕事でVBAつったら、事務員のスプレッドを少し自動化したものから、業務知識鬼のベテランがプログラム ちょっとかじったものまであるけど、最近またRPAバブルで前者を移植することになった このRPAっつー半分胡散臭いものが流行るおかげでワシらオッサンPGが食っていけるわけだが、いかんせん胡散臭い
>>233 バカなPower shellユーザーを追い出したいだけ。
このスレにとっては最高に有益だと思うけど。
>>234 >>231 は君の書き込みの引用なんだけどw
>>234 これ一個ずつやってみたらどうだろ?
VBAの実装の仕方がわからないって質問ですよね
1. インポート_CSV
2. 追加_数式列
3. ソート_数式列
4. 変換_テーブルレイアウト
自分で調べてみてそれでもわからないことが
出てきたら具体的に聞いてもらうということで
無能な味方が無自覚にバックファイアしてるようにしか見えん
他人を値踏みするスレじゃないですし 他人と自分を比較して自信をつけるスレでもないと思うんですよ Excel VBAでわからないことがあったら質問するスレということで ご理解賜りたいと思う次第でございます
>>240 議論に敵も味方も勝ちも負けも良いも悪いもないと思うんですよ
みんなで意見を出し合ってVBAパワーを高め合いましょう
>>536 dbからcsvでブッコ抜いた、300万件程度のレコードのなかから
~って条件に該当するレコードをExcelで抜いてくださいと言われたことがあって困惑した
Excelじゃ無理だといったら「なんで出来ないのか、PGなんだからできるでしょ」みたいな言い方された
1週間あげるから、1週間でExcelであげて欲しいと・・
結局なんとか、Excelじゃなくてもいいと説得してその日のうちに
仕上げたら「早すぎるのじゃないか」「正確性が心配だ」と文句言われた
ことを思い出した
だからなんで読んだ瞬間に組めると思うようなアホ臭い処理で比較してるんだよ。 頭悪いなあ。 そんなもんで比較してもVBAの優位性は変わらんぞ。 Excel上から実行出来るとか1ファイルで済むとか。 例えばフローレイアウトを使うことは無いと思うが、あれならまだ分かる。 あれはVBAじゃ無理だと思うからな。 見て組めると思うようなものをわざわざこんな所で披露するのはアホだと思う。 そんなもんは仕事でやれ。 そんなくだらないことをする時間がもったいない。
今のExcelって100万行/シートだから3つか4つのシートに分割して読み込んで処理すれば不可能ではないよな、65000行時代なら考えたくないが
>>225 マクロの作成の依頼は無いみたいね。
あまりみんなこういうのやらないのかな。
>>243 いや、仕事でやったことあるぞ。
もっとデータ多かったと思う。
それに引っこ抜くだけじゃなくて、それで演算もしてた。
今、計算してみたらデータは26280000以上だった。
正確には分からないけど多分倍以上だな。
>>244 VBAだと組むのに多大な労力がかかるからレスバトルごときではやりたくないんですよね
その気持ちわかります
これがVBAでもスラスラ短く書けるものだったらほれみたことかと言わんばかりに嬉々として解答してくれていたのでしょうね
1000個所以上(多分倍以上)の場所から1時間毎に取得したデータ3年分だな。 これをある時間毎に平均をとって1日に24個の平均値を作り、その最大をその日のデータとする。 で、それを3年分の日数取ってきて・・・ みたいな。
>>249 いや、スラスラとか関係ない。
5分で出来るものが20分になっても大したことない。
出来ないものは出来ないし、
何とかして頑張って出来るというものだったら5分が10日とかになる。
そういう方が問題。
解決策がみい出せるかどうかの方がよっぽど重要だよ。
/⌒ヽ \ ⊂[(_ ^ν^) 決闘状を申し込む! \/ (⌒マ´ (⌒ヽrヘJつ > _)、 し' \_) ヽヾ\ 丶_n.__ [I_ 三ヲ (  ̄ (⌒ ⌒Y⌒
>>249 短くスラスラ書けるようなものだったら回答しない。
他の誰かが回答するか、そいつが少し調べれば解決出来るだろうから。
たとえスラスラ書けてもVBAじゃ1レスに収まらないでしょ VBAerはpastebinとかgistとかのコード共有サービスの存在も知らなそうだし
>>253 いや問題だよ
>>79 みたいな日常的な作業は、解決に時間使っていいような困難な課題じゃないから
>>255 なら誰も答えられないってことはできないってことなんだろうな
ワンライナーじゃなくてもいいけどイミディエイトウィンドウしか使っちゃいけないって趣旨ですね?
>>259 もしできるならイミディエイトがいいけど
どうもVBAでは不可能って結論に落ち着きそうだから無理してイミディエイトを使わなくてもいいよ
普通にbasでもclsでも使ってください
とはいえレス分割するほど長くなると読む気がなくなるのでなるべくスマートに収めてください
>>243 よくよく考えると 1レコード分のバッファと条件一致したレコードの書き出し先さえ確保すれば
ReadLineの繰り返しで処理可能だから、レコードが何件あっても問題なさそう。
シートに取り込む必要なんてないわw
65000行時代でもできたと思うな
下のコードでボタンを押すたびにAの値が増えていくのですが グローバル変数ってプログラムが終わっても残るものですか またプログラムが終わったときに消えるにはどうしたらいいです? Option Explicit Dim A As Long Sub ボタン1_Click() A = A + 1 MsgBox A End Sub
>>79 ,239
暇だから書いてみた。
素人が書いたコードだからワンライナー?ではないけど許してほしい。
[Module1]
Sub hoge()
Dim i As Long, k As Long
Dim data() As Variant
Dim cCsv As Collection
Dim csv As clsCSV
Dim fso As New FileSystemObject
Dim fn As Variant
'CSV読み込み
k = 0
Set cCsv = New Collection
For Each fn In FileFilter(ThisWorkbook.Path, "csv")
Set csv = New clsCSV
cCsv.Add csv.LoadCSV(CStr(fn))
k = k + csv.RowsCount
Next
'CSV合成・計算
ReDim data(1 To k + 1, 1 To 4)
data(1, 1) = "X": data(1, 2) = "Y": data(1, 3) = "Z": data(1, 4) = "D"
k = 1
For Each csv In cCsv
For i = 1 To csv.RowsCount
k = k + 1
data(k, 1) = csv.Table(i, "X")
data(k, 2) = csv.Table(i, "Y")
data(k, 3) = csv.Table(i, "Z")
data(k, 4) = (csv.Table(i, "X") ^ 2 + csv.Table(i, "Y") ^ 2 + csv.Table(i, "Z") ^ 2) ^ (1 / 2)
Next
Next
>>263 続き
'XLSXへエクスポート
Dim WB As Workbook
Dim Sh As Worksheet
Dim Tbl As Range
Dim LO As ListObject
Set WB = Workbooks.Add
Set Sh = WB.Worksheets(1)
Set Tbl = Sh.Cells(1, 1).Resize(UBound(data, 1), UBound(data, 2))
Tbl.Value = data
Set LO = Sh.ListObjects.Add(xlSrcRange, Tbl, , xlYes)
LO.Sort.SortFields.Clear
LO.Sort.SortFields.Add Key:=LO.ListColumns("D").Range, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
LO.Sort.Apply
WB.SaveAs ThisWorkbook.Path & "\hoge.xlsx"
WB.Close False
End Sub
>>264 普通は汎用モジュールを使うが自宅にないので、それっぽく再現したもの
Function FileFilter(folder As String, ext As String, Optional ret As Collection) As Collection
Dim fso As FileSystemObject
Dim fil As File
Dim fol As folder
Set fso = New FileSystemObject
If ret Is Nothing Then Set ret = New Collection
For Each fil In fso.GetFolder(folder).Files
If fil.Name Like "*" & ext Then
ret.Add fil.Path
End If
Next
For Each fol In fso.GetFolder(folder).SubFolders
Call FileFilter(fol.Path, ext, ret)
Next
Set FileFilter = ret
End Function
>>265 続き[clsCsv]
Private data As Variant
Private dCol As Dictionary
Public Function LoadCSV(fn As String) As clsCSV
Dim i As Long, j As Long, k As Long
'インポート
'※CSVの仕様が書いてないから、遅いけどコレで。
With Workbooks.Open(fn)
data = .Worksheets(1).UsedRange.Value
.Close False
End With
'列情報のキャッシュ
Set dCol = New Dictionary
For i = 1 To UBound(data, 2)
dCol.Add data(1, i), i
Next
Set LoadCSV = Me
End Function
Public Property Get Table(Row As Long, Col As String) As Variant
If dCol.Exists(Col) Then
Table = data(Row + 1, dCol(Col))
Else
Err.Raise 9999
End If
End Property
Public Property Get RowsCount() As Long
RowsCount = UBound(data, 1) - 1
End Property
行数制限が辛いわ
無理に1行に押し込むより、少しづつステップ実行できる方が読みやすいし、良いのでは無いかと思うのでした。 VBAerの人頑張って最適化して?
dim csv as clsCSV て通るの?そんな型知らないんだが
>>270 長いだけで素人にはすごく読みやすいよ。
F8で1行づつ動きを確認していって”ここだ!”ってところで追記して、実行して、違ったら矢印をちょっと前まで戻して、また追記して実行してry
って感じなので・・・。
>>271 自作クラス
>>266 会社に行けばちゃんとしたクラスがあるけど自宅には無いから必要なものだけ実装した。
ruby厨のせいでrubyが不当に貶められてるのが気に食わないのでrubyで
>>79 書いた
1レスに収まるこの簡潔さよ
require "csv"
require "win32ole"
path_to_folder = "."
data = Dir[path_to_folder + "/*.csv"]
.map{|path| CSV.read(path, converters: :numeric)}.flatten(1)
.sort_by{|x, y, z| (x**2 + y**2 + z**2) ** 0.5}.reverse
ws = WIN32OLE.new("Excel.Application").tap{|app| app.Visible = true}
.Workbooks.Add.Sheets[1]
cells = ws.Range(ws.Cells(1,1), ws.Cells(data.size, 3))
cells.value = data
ws.ListObjects.Add(nil, cells)
ワンライナーじゃExcel操作するのを綺麗に書けないから諦め
APIが糞ってはっきりわかんだね
>>79 Dも出力するのかこれ。ちょっと(1行と1文字)修正
require "csv"
require "win32ole"
path_to_folder = "."
data = Dir[path_to_folder + "/*.csv"]
.map{|path| CSV.read(path, converters: :numeric)}.flatten(1)
.map{|x, y, z| [x, y, z, (x**2 + y**2 + z**2) ** 0.5]}.sort_by(&:last).reverse
ws = WIN32OLE.new("Excel.Application").tap{|app| app.Visible = true}
.Workbooks.Add.Sheets[1]
cells = ws.Range(ws.Cells(1,1), ws.Cells(data.size, 4))
cells.value = data
ws.ListObjects.Add(nil, cells)
なおcsvライブラリは標準添付ライブラリなのでわざわざ自作クラスとか作る必要ないです
>>276 Rubyの実行環境はどうやって入手するん?
事務員にできるん?
Export-Excelはどうやって使うん? 事務員にできるん?
>>272 じゃあこのコードに
・ワイルドカードあるいは正規表現を使ったファイル列挙除外機能
・CSVファイルの文字コード指定機能
・CSVファイルのデリミタ指定機能
をサクッと追加できますか?
>>280 コードを書かない人はプログラマでも事務員マクラーでもありません
>>276 自分が慣れてる書き方するために自作クラス作ったけど、作らなくても普通に書けるのでそこはツッコムところじゃないよ!
VBAは複数の二次元配列をマージする処理を自力で書かないといけないし、ソートもRangeに対して実行するか自作するかしないと出来ないので大変だとは思う。
やりたい命令がちゃんと用意されてるのはいいなぁ。
>>279 だからCSV用のクラスはちゃんとしたのが会社に行かないと無いってば。
イジめないで!
ファイル列挙用もこんな即興で書いたのじゃなくて、マトモなのがある。
日常的に使うものだから特にね。。
WSHのjscript版。with_なんちゃらは適当に補完してね。jscriptにはsafearrayがないから普通に書くとセル格納が糞遅い。 var base_path = "C:\base_path" var outxls = "DXYZ.xlsx"; var csv_list = []; with_dir(base_path, function(file) { if (!file.path.match(/\.csv$/i)) return; var i = 1; with_file(file.path, function(str){ if (i++ == 1) return; // exclude header var csv1 = str.split(","); var x = parseFloat(csv1[0]); var y = parseFloat(csv1[1]); var z = parseFloat(csv1[2]); var d = Math.sqrt(Math.pow(x,2) + Math.pow(y,2) + Math.pow(z,2)) csv_list.push([d, x, y, z]); }) }) function csv_list_sort(a, b) { return b[0] - a[0]; } with_excel(outxls, function(excel, book){ var sheet = (new Enumerator( book.Worksheets)).item(); csv_list.sort(csv_list_sort); csv_list.unshift(["D","X","Y","Z"]); for(var i = 0; i < csv_list.length; i++) { sheet.cells(i + 1, 1).value = csv_list[i][0]; sheet.cells(i + 1, 2).value = csv_list[i][1]; sheet.cells(i + 1, 3).value = csv_list[i][2]; sheet.cells(i + 1, 4).value = csv_list[i][3]; } })
イミディエイトウインドウ縛りを外して貰えれば、Excel標準実装のデータインポートメソッドで文字コードもデリミタも如何様にも設定できたるし、その上速いらしいよ下記のサンプル4ね
http://www.wat3d.com/gogo/vba-speedup/2-CSV-Uptake/ >>286 サンプルじゃなくて完動するコードを貼れやカス
>>257 バーカ。
5分が20分になっても、全く時間なんて使ってないというぐらいだ。
まともにプログラム組んだこと無いか、誰でもできるルーチンワ―クしか書いたことないんだろ。
仕事で組んでる時だって上手いアイデア出すのに長い時間使って、15分節約できたことなんて何の意味も無い。
>>292 バーカ
アイデア出すのに時間を最大限使いたいからくだらん仕事は可及的速やかに終わらせるんだよ
VBAなんかに時間使ったら頭使う時間もエネルギーも勿体なさすぎ
これプログラマの常識よ?
世の中みんなくだらん仕事はできるだけ楽にしてクリエイティブな仕事に時間体力金を使おうって考えてんの
クソやりにくい言語で自らを縛って車輪の再発明を繰り返す変人なんて相手にもされんわ
プログラマってクリエイティブなんだ 知らなかったわ
>>284 それってさ、
「VBA自体の機能は弱いけどオレオレライブラリを充実させているからいいんです!」
ってことじゃない?
そんなの俺だってそうだよ!
なにが言いたいかというと特にないです。
>>295 だからバカなんだよ。
どうせお前はどんだけ時間使ったってアイデアなんて出ないだろう。
そういう問題だ。
そもそも、いくらだってもっと技術的に高度で、VBAでやるのは大変な例なんていくらでも有りそうなもんだが、こんな腐った例しか出せないところが、お前にアイデアなんて出せそうも無いことを物語ってる。
俺はこんな簡単な仕事をやる人間じゃない(やらない) もっと難しい仕事をやるべき人間だ(やらない) いつまでたってもやれない
VBAでもヲタが力んでWindows APIやクラスモジュール使い倒してるのはたまに見るな マクロで何粋がってるんだ?という
>>299 こんだけ具体的なコードが出てる中でサクッとコードを晒せないお前はどんな演説しても語るに落ちてる
>>299 お前は、アイデアなし、他言語使えない、頼みの綱のVBAですらコード書けない
バカ三冠王じゃねえか!おめでとう!
ここで語り合うヤツはそもそもクリエイティブではないだろwww
まったく、つまらんコードでアホ丸出しだ。
俺はこういう馬鹿ではないのでちょっと面白いコードを出してやる。
結構前のことだが画面上に、あるピクセルを指示する何かを置いておきたいって、
質問(要望)があってその時にプロトタイプ的にサラッと書いたものだ。
機能的に不十分でやっつけだからその時は提示しなかった。
https://pastebin.com/W2utMzUM 俺が思うに.netが使えれば、もっと完成度が高く高機能なものを
簡単に作ることが出来るはずだ。
なんでこういうのを比較に出さないのかということだ。
それから、
>>243 はdbからcsvで抜いた300万件のデータと言ってるな。
これまで提示されたコードだと結構時間がかかると思うぞ。
俺の時は数千万のデータだったが最初に書いたコードではVBAで6時間ぐらい
掛かりそうだった。
で、コアを5~6個使って1時間程度に短縮した。
プロさんは相手と交渉できるんだろ。
dbに計算させた方が明らかに速いだろう。
>>309 アイデアもコードもつまらないものだったけどそのレスには爆笑した
確かにクリエイティブな才能(例えばコメディアンなどの)があるようだね
>>309 いやそんな誰が書いたかもよくわからんコードじゃなくて
>>79 を貼れよ…
要件もわからんコード出されても評価のしようがねえよ…馬鹿なのか…
>>311 悔しいからって犬の遠吠えですか?
フォームをクラスみたいに使う方法を知らないVBAユーザーは結構いるだろう。
お前のコードのように、見た瞬間に出来ると思うようなものじゃ無いんだよ。
それに、このコードにある機能を追加しようとしたら途端に難しくなる。
C#だったら簡単な筈だからPowerShellでも難しく無いだろう。
Excelも関係ないし、VBAでやるべきじゃない例としてはお前の挙げた例なんかよりよっぽど適切だ。
>>312 そんな誰でも出来るくせに仕事で書くようなコード書いて何が楽しいんだ?
仕事じゃねえんだからもっとおもしろいもん作れや。
俺の書いたそんなに高度じゃ無いもので、その割にアイデアが無いと出来ないようなのをな。
問題が面白いかの話なんて誰もしてないよ
Excelが絡むある作業をどう書くのかという話をしてるんだよお前以外は
早く
>>79 のコード晒さないと口だけの奴だと思われるぞ
もう遅いかもしれないけど
>>315 どんなコードを書いてるかを見れば、そいつにそれが出来るレベルにあるかなんてすぐわかる。
だから俺が書く必要はないだろう。
それに、どっかのアホが既にVBAで書いてるだろ。
どうせ似たようなもんになるだけだろう。
そうだな、俺ならFileSystemObjectを使わずにブックのOpenもしない。
csv読み込んで演算するなら古いテキストのOpenで開いてやった方が速いと思う。
スピードを考えるならBinaryでひらいてStrconvを使うかな。
Dictionaryも使わないんじゃないかな。
クラスも使わない。
クラスを作るのにピッタリ来る処理とは思わないから。
まあ、だからといってアホのコ―ドが駄目かといえばそんなことは無い。
俺が見るに趣味の問題。
だが、つまらん作業に時間を使いたく無いからこんな処理のコードは書かん。
プログラマって自尊心の塊なのかってぐらい自分を守るな
質問に答えられないからってドーナッツ作って話をはぐらかそうとする奴が居るらしいんだがマジか?
>>321 君は言動を見ると、そもそもプログラム書けないんじゃないか?
どの発言みても、レベルが高いようにはとても見えない。
例えば、俺がアホと呼んでる
>>263 だってコード見れば結構レベルが高いことなんてすぐ分かる。
人のコード見てそんなことも読み取れないんじゃ話にならん。
長文書く暇はあるのに15分で書けるコード(rubyの場合。テスト用csvファイルの作成などを含む)を 何故さっさと書かないのかコレガワカラナイ
>>323 そもそもコード晒さない奴が何言ってんだ
最高レベルのドーナッツ職人とコメディアンの二足のわらじは大変そうだなあ そりゃコード書けなくなるわ忙しいもんな
>>320 >>321 ドーナッツやない、ドーナツや
ウェブをウェッブと言うようなものやで
キスをキッスと言うようなものやで
昭和のおっさんか
>>324 PowerShellのは3分で書けたぞ
アホが何を言って煽ろうが、書かないと宣言したもんは書かん。 それに、それなりにスキルのある奴はコードを見ればレベルもわかる筈だ。
>>323 PowerShellerなんかに褒められて、わ~い♪褒められた~♪と内心喜んでる俺がいる。
が、それは置いといて俺のVBAは準備含めて30分くらい。
(32行に収まらなくて調整するのに10分くらいかかったけども)
>>326 Winapi入門的な本やサイトでありがちな初心者用の練習課題ってとこかな
>>330 そもそもお前が勝手に問題作ったらお前が書いたコードかどうかも怪しいんだよ
そんなこともわからんのかコードが書けないスキルの無い奴は
>>332 君がPowerShellerじゃ無いのか?
「VBAerの人頑張って最適化して?」とか
「やりたい命令がちゃんと用意されてるのはいいなぁ。」とか書いてるし。
それとも、まんまとPowerShellerの口車に乗せられて、コード書いたんか?
>>334 だったら、もっとおもしろいお題を出すんだな。
それに、コード晒さなくてもこれまでの言動からすぐ分かるだろ。
>>336 たしかにわかるな
口先だけの奴だってなwwww
>>334 というか、こんなこと書くからレベルがすぐ分かる。
>>337 お前が碌に書けないのはすぐ分かる。
スキルのある奴なら
>>317 を読めば最低でも多少は書ける奴だとすぐ分かるんだよ。
>>335 生粋のVBAerだけど素人なので、仕事で使ってるVBAer任せた!ってつもりなのでした。
昼食後の昼寝前に暇だったから、誰も投稿しようとしないコードを上げたらどうなるのかなと・・・
口車に乗せられたってのは間違いないかもね!
これまでの言動から初心者レベルのWinapiを使った面白(?)アプリで有頂天になれる強い自尊心の持ち主ということはわかりました どんな苦境でも前向きに物事を考えられるその人間性はとてもスゴイことだと思います
>>333 悔しいのかもしれんが、つまらんお題を出した自分が悪いんだよ。
>>340 あああわわわ・・この表現だと仕事で使ってないみたい。
会社でコソっと使ってるけど、これで御飯食べてるわけじゃないのでバリバリ使ってる人ならと・・・
結局、PowerShellは大したことできんと証明するようなお題なんだからな。 大したことできるというお題だって提示できた筈なんだ。 それでも、VBAじゃやらない処理だという反論も出来る場合もあるだろう。 でも、俺が見てもどうにもならんからそれだったらC#でやるというものもある。
>>340 あなたのコード見ていっちょrubyでも書いてみるかってなったから先陣を切ったのは偉い
素人でもなんでも実際に動くコードが良いコードだ
>>345 確かに偉い
言い訳ばかりでなんにもコード書かないくせに自信だけはたっぷりの勘違いくんに爪の垢を煎じて飲ませてあげたいね
>>329 おいお前、Export-Excelを使う方法を教えろ
Windows 7、PowerShell 4だ
>>348 あ、私も知りたい。
自信満々に上げてくれた
>>90 を検証したいのにエラー出てくる。
こっちはWindows 10だ
なんか派閥が形成されててキモい 自分以外は全部敵だと思え、馴れ合う君たちに価値などない
>>352 そこまではわかった。
ダウンロードしたフォルダで
>>90 を実行すると、こうなるけどどうしたらいいの
PS C:\Users\hoge\Downloads\ImportExcel-master> gci . -Recurse -Filter *.csv | % { ipcsv $_ } | % { $_ | Add-Member -Pass
Thru -MemberType NoteProperty D ([math]::sqrt([math]::pow($_.X, 2) + [math]::pow($_.Y, 2) + [math]::pow($_.Z, 2))) } | S
ort-Object D -Descending | Export-Excel -Now
Export-Excel : 用語 'Export-Excel' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前とし
て認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、
再試行してください。
発生場所 行:1 文字:221
+ ... th]::pow($_.Z, 2))) } | Sort-Object D -Descending | Export-Excel -Now
+ ~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Export-Excel:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
>>354 >>355 わざわざExport-Excel.ps1の入ってるフォルダで
>>90 を実行しているのにコレが出るから悩んでいる。
dllみたいにsystem32へ保存しないとダメとかなんかルールあるんけ?
急にリンク貼るだけのコミュ障になったなコイツ ただのクズか
そこに書かれてる Install-Module ImportExcel -scope CurrentUser を実行するとこんな感じだった。 --- PS C:\Users\hoge> Install-Module ImportExcel -scope CurrentUser 続行するには NuGet プロバイダーが必要です PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または 'C:\Users\hoge\AppData\Local\PackageManagement\ProviderAssemblies' に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y 信頼されていないリポジトリ 信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery' からモジュールをインストールしますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y PS C:\Users\hoge>
>>357 Install-Moduleはオンラインギャラリーからインストールするもので
ローカルのモジュールをインストールするのは↓これでいけるかも
about_Modules
https://technet.microsoft.com/ja-jp/library/hh847804.aspx モジュールのフォルダを自分で作って
そこにモジュールを放り込んで
Import-Moduleやるみたいよ
c;\aaa\bbb\ccc.xls c;\aaa\AAAAAAA\cccaaaa.txt みたいに 二つ目のフォルダの階層だけを取得したい場合 どうすればいいのでしょうか? 上記ならbbbとAAAAAAAです StrReverse関数はあくまでも右から見て最初の\以降しか取れません。
>>361 それでわかるわけないだろ、品川に行くにはと聞いてる人に関東だと答えてるようなもんでしょうが
split して配列にぶち込んでArr[2]を参照
とりあえず、ps1は絶対パス指定じゃないと動かないらしいことがわかったので
フルパス指定したら先のエラーは突破できたけど、どこのフォルダに保存されたcsvも
>ファイル 'C:\test\1.csv' が見つかりませんでした。
って出て読み込んでさえくれない。
>>363 の方法でなんかすれば動くのかな・・・
とりあえず今日は諦めるわ
VBAってファイルを開いてコピーしてペーストして閉じるぐらいのもんじゃないの? 何をこんな難しい話をしてるんだ??
>>364 2つ目のフォルダって、最下層から二つ目って意味じゃないかな?
Sub hoge()
Const sample1 = "c;\aaa\bbb\ccc.xls"
Const sample2 = "c;\aaa\AAAAAAA\cccaaaa.txt"
Dim s() As String
s = Split(sample1, "\")
Debug.Print s(UBound(s, 1) - 1)
s = Split(sample2, "\")
Debug.Print s(UBound(s, 1) - 1)
End Sub
>>357 PS で、カレントフォルダ以下を再帰的に、すべての .txt を取得する。
まずcd で、作業フォルダへ移動してから、実行して
$files = ( ls . -Recurse -Filter *.txt )
$files | % { echo $_ }
$files | % { echo $_.fullname }
上は、パス無しのファイル名のみで、下は、フルパス付きのファイル名になる。
ファイル名だけよりも、フルパスにした方が無難
% -> ForEach-Object の、alias だから、以下みたいにも書ける
foreach ( $file in $files ) { echo $file.fullname }
一晩(実質2日だが)待ったがドーナツ先生はまだ
>>79 を解けないのか?
>>374 もはや解いたも同然と言っても過言ではない
>>374 あの、ところでテーブルレイアウトってどういう意味でしょうか?
テーブルレイアウトがこの問題の一番重要なところですよね
元々が「イミディエイトウィンドウで」なので Excelブックのシートに展開することを指しているんだろうとエスパー
そもそも、MS謹製じゃない誰かの作ったライブラリ使って1行で書いて自慢するというんじゃね・・・
それって
>>263 や
>>275 の書いたコードを呼び出す1行のコードでも良いってこと?
>>383 無理矢理こじつけて面白いとでも思ってる?
先のコードを見れば、MSのdllしか使ってないのはすぐ分かると思うのだが。
つまり、無理矢理なのは明らか。
それともそんなことも分からない程スキルが無いのかな?
>>384 お前が
>>263 のコードすら読めてないってのはわかった
>>386 ???
先のコードって
>>263 のコードのことだとでも思ってる?
何で
>>263 のコードがここで出てくるのか分からん。
標準でいろんな機能が備わってるか、という基準でならVBAのボロ負け ってことは皆さん承知でいいんだよね?
そらそやろ 飛行機は空を飛ぶってことに合意とってるようなもんや
喫煙所でタバコは体に悪いよねと合意取るようなもんや 酒、タバコ、VBA
>>387 レベルが低いとそんなこともわからないのかw
>>388 それ、 VBAが勝てる言語ってあるのか?
ケンタッキーフライドチキンで鶏肉が不味いと言ってるようなもんだぞ
>>309 >俺が思うに.netが使えれば、もっと完成度が高く高機能なものを
>簡単に作ることが出来るはずだ。
>なんでこういうのを比較に出さないのかということだ。
ここを読むと技術力の低さが露呈していることがハッキリする
ドーナツアプリを見たがこの程度ではこれを.NETでやっても大きく差はつかない
せいぜい、運が良ければAPIじゃなくてマネージドな部品が用意されてるかもね、程度
>>79 はみごとだ
標準のコレクションやライブラリの貧弱さ
ラムダ式の未サポートなどモダンな言語機能の欠如など
VBAの弱点をしっかり捉えた題材と言える
実際に勇気あるVBAerがコードを晒したがPSで書いた時とは全く異なる長ったらしい読みにくいコードだった
題材が的確だから結果にも大きな差がついた
オマケにVBAとは違って強力なライブラリや言語機能を備えたRubyがPSと同じく短くエレガントなコードになったことがこの事実をさらに後押ししている
>>400 最後にテーブルにするというExcelに寄り添いつつも実用性のある操作を加えることで
決してVBAだけに不利な条件にもしないという隙の無さもポイント高い
(ところでPSのやつ最後テーブルになってるようには見えないんじゃが...)
ルビーは実行環境インスコせなあかんし 池沼シェルはモジュールをインターネッツから インスコせなあかん、それがネックやな
>>401 そこに気づくとは
パワシェルは要件を満たしてないオナヌーコードに成り下がってる
簡単さにこだわる余り目的を見失ってる
要件を満たして正確に動作すること これが第一、その上で簡単に書けたら良いよねが来る 簡単に書けました、ただし要件は満たしませんでは駄目なのさ
>>401 と思ったけど-Nowオプション付けるとテーブル(というかフィルター?)になるのか
早とちりだった
-TableNameでテーブルになるのかな?
>>400 はあ、どうしてケチをつける割に人の話を聞かない奴ばかりなんだ?
あれをそのままで.netの方が良いなんて言って無いんだよ。
分かりやすいのは他言語のコードを見ても全く、使おうとは思わない点だ。 VBAで何の問題も無いとしか思えない。 所詮、そんなコードだということ。
その点ドーナツは凄いよな 俺も今やってる仕事でVBAでドーナツ使いたいわ そんな魅力がドーナツのコードにはある
>>412 話が読めないバカが混じってるな。
日本語が弱いのかな?
>>413 日本語読めない子扱いされてるのがそんなに悔しいの??
わざわざ日本語弱いとか煽ってくるとかwww
人間自分が言われて嫌なことを悪口に使うって聞いたことない??
>>413 ねえいつもうるさいくせに何で黙っちゃったの
>>414 根拠も何も無い、論理的に間違っていてもまともに反論も出来ない、そういう奴だから日本語が弱いと言われても仕方がないだろう。
お前は何ーつ反論していない。
反論出来ないということだろう。
>>415 今、見たからだが。
お前みたいに、このスレに齧り付いてるわけじゃ無い。
>>416 おっそうだな
それ鏡に向かって言ってごらん?
それだけでかなり日本語能力が改善されると思うよ?
>>418 一切反論が出来ないようだw
論理的なものが何も無い。
バカが1人だけだとほっとかれて終わるけど 2人で言い合うから終わらない
例えば無数にあるエクセルファイルからそれぞれ読み取ってデータを集計する際、どう処理するのがベター? 速度気にするならデータベース?
>>422 無数にあるエクセルファイルって、データの形式は統一されてるの?
>>423 形式は統一されてるとして同じ作業を繰り返えさせるのはどうするのがベターなのかなって。
>>424 やっぱ普通に開いて閉じるの繰り返しか。
>>425 形式が統一されてるならSQL
{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}
そもそも、その内容だけを見た時にVBAでやる必要有るのか?とも思う。 好きなの使え。 それに、その程度のことでどれがベターとか考えるか? コード見て、こりゃダメだと思うようなの書いて無い限りどんなのでも良いだろ。 スピード優先な処理なのに1つずつセルに入れてるようなのはダメだが、処理に時間がかかってダメだという状況じゃなかったら別にどうでも良いし。
Ruby なら、こういう感じで、フォルダ以下を再帰的に処理できる Dir.glob('C:/Users/Owner/Documents/Ruby/test/**/*.txt') do |file| next if File.directory? file # ファイルだけを処理する # 処理 end
>>428 何でVBAじゃないとダメなの?
ちゃんと答えられる?
>>430 どこがセンス無いんだ?
全然説明が無い。
Excel は環境構築がいらない。 Excelが実行環境だから だから、Excelエンジニア(ノンプログラマー)は、Excelを使う ところが、そこへ本格的なプログラミングを頼む者が現れるが、 プログラミング技術がないから、Excelで作ろうとする 案件と使う技術の不一致!
仮想マシンでwindowsからセットアップしなきゃならん インストールしてからもマクロ許可の設定しなきゃだし 手間も金もかかる
パソコンとはWindowsとMicrosoft Officeが動くもののことである WindowsとMicrosoft Officeが動かないマシンなどこの世には存在しない してはならない
クリエイティブなエンジニアはみーんなマックとハイスペLinux
>>437 根本的に勘違いしてる。
別にOfficeが動かないマシンが有っても構わない。
けど、ここはExcelVBAのスレだからExcelが動く環境の人が質問する所だ。
Officeが動かない人がここで何をするんだ?
Officeの入ってない管理者用PCでリモートPCのOfficeをいじるときにCOM経由でVBAのコードを動かすこととかあるよね
>>440 Officeが動かないマシンなどありません
異端者はこのスレから立ち去りなさい
>>441 う~ん、それこそVBAじゃ無くても良いような気がする。
既に出来てるコードを動かすという点で新たに組む必要が無いという理由が、あるいは他にも事情があるのかもしれないけど。
でも、そもそもExcel入って無くてインスタンス作れるか?
>>441 無いだろ
リモート側のExcelどうやって起動するんだよ…
RubyバカはRubyのスレに逝けよ。Rubyのスレでは俺はRubyが使えるんだエラいんだって自慢できないからここに いすわってんのか?
>>445 インスタンスはリモート側で作らせればいい
管理者側はリモート側のプロセスをモニターするだけ
Office は高いから、入れていない Ruby で処理して、VSCode のExcel Viewer で見たりする
csv開いて取り込む方法だけでも色々あるのね openfileで開いて1行ずつ読み込んで、カンマ区切りでセルごとに格納するって方法もあれば、csvファイルをエクセルとして開いて配列に格納する方法もあった
高いからエクセル買えない奴多いんだな 中国人や韓国人ですかね?
こんなスレまだあるんだな しかも結構人多いのに驚いたw VBAっていうかExcelって需要あるんだね でも仕事でやれって言われたらストレス溜まりそうだな 基本的にGUIが貧弱なVB6だよね 10年ぐらい前に必要に迫られてちょっとだけ触ったけど C#に慣れた身には死ぬほど不便に感じたわ
買えないならLibreOfficeがいいね Excelとあまり遜色ない BASICやpythonもサポートされてる 金出してでもネームバリューが欲しいならエクセル
>>455 このくらいの意味もわからんとはかわいそうなやつだな
何も始まらない ID:w2kFCGmb が被害妄想が激しいお馬鹿さんなだけ
C# スレでフルボッコでもされた憂さ晴らしに来たらこっちでもハブられてるって話だろ w
煽られてムキになっちゃってるVBAerって普段からC#erに嫉妬してそう
{ } っていう表記を見るだけでイライラする人とかいそうだよね
まあわざわざこんなスレにまで来る時点でどっちが嫉妬してるんだよ って話だわな w
昔はMSSoapとかいう便利なSoapクライアントが標準で入ってたと思うんだがwin7にはないのか? いまどきのVBAだとどうやって標準だけでsoap serverに接続すんの?
そもそもVBAの質問スレなのにVBAを叩く人が多いのは何でなの?そのお気に入りの言語のスレでVBAを叩けば良いのでは?
VBA使いに何故か頭のおかしい人がいっぱいいるから 頭のおかしい人は叩かれやすいから
>>469 統計とったん?
頭がおかしいのはもしかして・・・
>>470 取ったよ
有意にVBAerは頭がおかしい
>>467 VBに取り憑かれなければもっと成果でていたかもしれないねもったいない
>>471 統計取る人の方が頭おかしいんじゃないかって
言おうと思ってたの
なんで・・・
昔のVB6とVBAの互換性くらいの頃が良かったな .NETの非接続型のデータセットもVBAでサポートしてほしい
vbaて最近やと難しい言語に入るからなw ヤワな言語かじってプログラミング出来ると勘違いしとるバカが 「ルビーを使いこなせるボクが手も足も出ないvbaなんかクソに決まっとる」 言うて駄々こねとるんも無理ないわなw
セルを参照するrangeの仕様を見直せ たとえばA1と指定すればA1だが、1Aと指定しても列がAで、行が1だということが分かるだろ。そのくらい内部で読み替えせないか? 仕様として、本当に、おかしい
逆だった。要は、A1でも1Aでも同じことだろと言いたかった
通常トークンの先頭が数字なら数値のリテラルと解釈する 先頭が数字を許す数値以外のトークンは通常ない だれもいちいち面倒なことはやらない わかった?
>>486 ←トークン言ってみたかったプロさんwwwww
昔はMSSoapとかいう便利なSoapクライアントが標準で入ってたと思うんだがwin7にはないのか? いまどきのVBAだとどうやって標準だけでsoap serverに接続すんの?
オレはプロフェッショナルだからな クソニートや低学歴知恵遅れがでる幕はない
>>490 あいにくプライベートな質問はお断わりしとるもんでw
>>486 >だれもいちいち面倒なことはやらない
トークンもリテラルも理解できないが、1行で改修できるようなもんだろ
それを面倒とはいかに。
関数では列行指定なのにCells()だと行列指定で数字のみなのは変といえば変
=E1+1 ← セーフ =1E1+1 ← セーフ =1E+1 ← セーフ コレ どうしてくれんの?
>>494 ←アドレスと数式の違いがわからないプロさんwwwww
1E+1 コレ普通に指数表記の数値リテラルだからな まともな教育を受けてない低学歴知恵遅れには縁がない どんな高級言語でも普通にほとんどサポートされてる
=E1+1 =1E1+1 =1E+1 低学歴知恵遅れは一度コレをエクセルのセルに入力してみればいい 低学歴知恵遅れではきっとなんでそんなことになるのか理解できない 意味が分かってないっからな
>>497 ←もはや色んな事が逸脱しすぎてもうとるプロさんwwwwww
低学歴知恵遅れは自分がいかに低学歴知恵遅れで 自分が人間未満のゴミクズ人間という自覚がない そして自己評価だけは高い こういうのは 低学歴知恵遅れのクソニート、底辺ITドカタに多い
>>500 ←低学歴のクソニートと底辺TIドカタを兼ねそなえてるプロさんwwwwwwwww
バカはバカの自覚がないからな どんだけバカで愚かな人間かという自覚すらない バカは自分がバカで愚かな人間ということに気づくことはできない そして、一生、その自覚がないまま バカでゴミクズな人間のまま終わる わかった?
>>503 ←人並みに悔しい感情を持ちあわせた奇特なプロさんwwwwww
>>505 ←突然自らの半生を語りだしたプロさんwwwwwwwwww
この板は気の毒なぐらい頭悪いのしかいないから しょうがないともいえる
>>507 ←気の毒なぐらい頭悪いプロさんwwwwしょうがないwwwwwwwww
よくこんなオツムで リアルの世界で生きていけると思うわ 2ちゃんねる以外では到底通用しない 結論としてクソニートと断定できる
>>509 ←いまだに2ちゃんねるの世界で生きとるプロさんwwwwwwww
すいませんここってVBA質問スレですよね? この質問に答えられる人は居ないのですか? 昔はMSSoapとかいう便利なSoapクライアントが標準で入ってたと思うんだがwin7にはないのか? いまどきのVBAだとどうやって標準だけでsoap serverに接続すんの?
soap vbaでぐぐればいくらでもサンプル出てくるじゃん、MSXML利用だろ
>>513 めんどくさすぎなんですけど?
mssoapのmssoapinitと同じくwsdlの解析を1行でできなきゃ使い物にならないですよ
めんどくさいとか言ってないで自分でラッパー作ればいいだろ 一回苦しめば後は楽だよ
>>515 汎用ラッパーを作るのは最悪級の車輪の再発明なので却下
サービスごとにラッパーを書くのは工数かかるから却下
既存の資産でなんとかしたい
既存の資産って言ってるけど当のMSが積極的なサポートをやめてるんだし、envelopeを投げるリクエストメソッドとかは基本的にユーザー側で作ってねってことだろ その能力がないとか、その労力を惜しまなければならない状況なら、所詮は今まで使ってたコードは環境依存の資産でしかなかったってことだろ
cpanとかNuGetみたいなパッケージ管理システム/リポジトリが無いのは本当に欠陥だよな
たぶんMSXMLのラッパーなんか作ってる人いっぱいいるんだろうけど、それを公開する場所も共有する方法もない
そのせいで車輪の再発明が当たり前な文化だし、しまいには俺も苦労したからお前も苦労しろの老害思想
ほんと吐き気がする
というわけで
>>512 への回答としては苦労してラッパー作りましょう
パッケージ管理システムならC#とかで自分で作れば良いじゃん
>>512 >昔はMSSoapとかいう便利なSoapクライアントが標準で入ってた
なら標準で入ってた環境で使えば?
新規になんか作るより運用でカバーできるならそっちの方がずっと楽だよ
VBAにパッケージマネージャなんかあったらマルウェアの温床だろう すぐにVBAGet(仮称)自体がウィルスとしてセキュリティソフトの駆除対象になって終わりだよ
>>525 その辺はリポジトリーを管理する組織、いわばリポジトラーが安全性を担保するから問題ないかとー
>>526 NuGetなどの公開リポジトリは一般に、作者の認証は行うけどそれだけだぞ
作者自身が意図して(or作者のPCのウィルス感染などで)悪意あるコードを仕込むのを防ぐことはできない
>>527 NuGetはマルウェアの温床になってるの?
>>528 つい最近NPMのパッケージにマルウェアが仕込まれて大騒ぎになったの知らないの?
公開・非公開は関係ない 人間は失敗するし産業スパイは金になるところにはどこにでもいる だからソースが見えてるものが安心なんだ ソースが見えてれば世界中の人たちが検証できるからね
>>530 知らない
VBA以外の環境でもパッケージマネージャがマルウェアの温床になるなら
言語の問題ではなくてパッケージマネージャの問題と言える
VBAだからといってパッケージマネージャの導入が悪くなるわけではない
大騒ぎになったということはマルウェアが仕込まれたら困るユーザが
たくさんいたってこと、そのユーザの力を借りれば良い
パッケージマネージャでユーザレビューを提供して
このパッケージは怪しい動きしてるってことが発覚したら
ユーザによってパッケージの評価を下げられるようにすれば
ある程度被害を抑えられる、あまりに酷いようならその開発者を
ブラックリストに入れることで対処できるってことやな
>>535 おいおまえ、パッケージマネージャを作ってくれ
>>533 .NETとVBAしゃ開発者のスキルが違うし、事故があったときの被害規模が段違いでしょ
VBAだとセキュリティ制御も困難だし
プロさん、vbaにパッケージとゆう概念がない事を知らないwwwww
>>537 スキルなんて大して変わらんだろ、被害規模も変わらんだろ
できることに大差はない、セキュリティは問題無い、やろう
君がパッケージマネージャ開発しよう、そしてMicrosoftに買収してもらおう
その価値を考えるなら1億円くらいが妥当、半分は開発を指揮して主導した
僕の手柄だから僕がもらう、発案者として僕にはその権利がある
なんや訳わからんと横車を押してみるプロさんwwww
詰みに気がついた様子のプロさんwなおここからもう一度横車を押しますwwwwwww
何絶句しとんねん、黙ったらダメ なんでもええやんけ、どんぶらこっこ、どんぶらこっこwwwww でええんや、自分の取り柄は末尾にwをつけることやろ それさえ守ってればなんでもええんや
必要な人にだけdll配って参照設定するんじゃね? それでdllない端末は実行できずにエラーになる その程度だし、その気軽さがVBAの存在意義だろ?
この人のセンスを見習って欲しいね、これは脱帽せざるを得ない 547+1 :デフォルトの名無しさん [↓] :2018/09/01(土) 22:25:23.33 ID:zuN21Q9R (1/2) キチガイの巣になってて草 551+1 :デフォルトの名無しさん [↓] :2018/09/01(土) 22:34:22.57 ID:zuN21Q9R (2/2) 自分がキチガイじゃないと思ってるキチガイいて草
アマチュアの人達はchocolateyも知らんのかね あれは特定の言語に偏ったものじゃないからVBAのパッケージ管理にも使えるぞ だから問題は管理システムがないことじゃないんだ VBAには価値あるパッケージを作れる、作りたがるプロフェッショナルが少ないから管理システムがあっても意味がないんだ
>>559 これを登録してもくれるか? 有用なパッケージだ SUB SORT(A) DIM I, J, T FOR I = 1 TO UBOUND(A) FOR J = 1 TO UBOUND(A) IF A(J - 1) > A(J) THEN T = A(I) A(I) = A(J) A(J) = T END IF NEXT NEXT END SUB chocolateyでVBAの管理するノウハウ教えて欲しいわマジで
>>559 > アマチュアの人達はchocolateyも知らんのかね
VBAスレに出没する自称プロ乙 w
> あれは特定の言語に偏ったものじゃないからVBAのパッケージ管理にも使えるぞ
むしろVBAに偏ったパッケージマネージャーが欲しいって話なんだが…
>>562 そもそも需要がないでしょう
なんども議論されてる内容ですが、インストールが許可されてるなら他の言語やツールを使うし、許可されてないならどんなに素晴らしいパッケージリポジトリがあっても無意味です
仮に需要があったとしても、供給側にやる気がないのはgithubなどホスティングサービスでVBAプロジェクトの数を調べれば明らかです
需要も供給も知らなくていい、自分の好きな事だけやればいい、の精神だからアマチュアと言われるのでは?
まあそういう事なので、VBA専用と堂々と銘打ってユーザーを取り逃がして潰れるよりかは、すでに安定してるリポジトリに間借りしたほうがいいわけです
普通の会社の事務員とかVBAくらいしかできないから潜在的な需要はありそうだけど社内規定が足枷になってるということか
社内規定の問題も大いにあるけど パッケージ提供者となりうる高スキルのプロ達がVBA好きじゃないという点が最大の問題
>>563 そういうゴタクは
>>561 に応えてからにした方がいいぞ…
お前にできるとは思えないけど w
>>565 全くもって同意
事務員さん達の作ったゴミの展示場になるだけだな
>>566 アカウント取ってサービスのルールに則って必要事項を入力してサイレントインストーラーをアップロードして審査申請して審査結果を待つだけだぞ?
アマチュアには難しいか?
>>568 VBAのコードを更新した時の操作書いてみ
まさかVBE起動してモジュール削除とインストールとかを手動で操作させるとか言わないよな?
例えばC++で社内システム作ったとして、それをGithubなんかに公開する所があるかく言えば、それは無いだろう。 基本的に公開するのは汎用的な何かだ。 ところがVBAはその性格上、非常に業務に密接に繋がっていて汎用的なものは少ない。 したがって公開する奴が少ないのも当然のこと。 汎用的なものを作って公開してる奴もいるけど、アクロバティックでVBAでやるべきことかという内容か、わざわざ公開されなくても既に自分も似たようなの作ってあるわというものになりがちだ。
外注に出してプロに作ってもらったシステムより、 実際に事務やってるVBA詳しい先輩が作ったシステムの方が使いやすい
>>574 汎用的なものは普通標準ライブラリと呼ばれる類のものだけど、VBAにはそれがない。
ないものを提供しようとすると多少アクロバティックになる。
ってところか?
>>577 ExcelVBAでの処理はセルの操作などが主な部分だからそんなものはわざわざ公開してほしいものじゃ無い。
一方、そんなに簡単では無い処理についてはVBAでやることかという内容だったりもする。
例えばWin32APIで色んなことが出来るわけだけど、それはアクロバティックということになっている。
csvの散らかってるものを整理して並べ直すマクロ誰か作ってくれ とっちらかっててイライラする
>>580 その内容よくわかんないからいいや
なんかやりたいこととあってないし多分
>>579 「散らかってるもの」じゃさっぱりわからんだろ
Function csvを整理して並べ直す(ファイル名 As String, n番目の要素 As Long, orderby As Boolean) As Variant
みたいな感じか?
>>579 俺のところにあるとっちらかってるtxtファイルをソートするマクロを作ってくれれば
おまえのマクロつくってやるよ
っていわれてできるか?w
>>572 ワッチョイってそんな簡単にいれらるのか?
いれられるなら入れた方がいいだろうけど
スレ住民的にはない方がいいってやつの方が多そうだなw
>>582 ただのぼやきなんだよ
お願いしたわけではなくって
lookupで頑張った結果大変なことになったからVBAで頑張ろうとしている次第
csv開くだけでも一苦労だよ
csvの検索や管理はPowershellでやりなさい。Excelでやろうとするのがおかしい
>>584 その程度のことはやったらやっただけのリターンは得られるからやればいいよ
>>585 csvデータはエクセルで使うから、それつかう理由は特にないよ
プログラミングの仕事ではないし
> csv開くだけでも一苦労 なのはVBAでやろうとしてるからなんやで…
PowerShell, JScript, Python, Ruby… 単にファイル結合するだけならbatとかでもいい wslでbashシェルコマンド使うのもアリだ
Powershellに標準で用意されているcsv用コマンドレットの豊富さや whereオブジェクトで簡単に値を検索-参照-変更できるメリットは代えがたい。 キー列を使っての結合も自在、いちいちテーブルに読み込む必要もない。
>>579 要件定義がきちんと書けない人には答えようがないの典型w
一句できました スレ違いそれがどうしたパワーシェル
>>588 あ、いや、それは私がよくわかってなかったからで、開くコード自体は簡単極まりなかった
うちじゃPowershellが使えないのが残念なところだ。 まだVIsualStudio(Express)のインストール申請の方が通りやすい
パワーシェル好き いちいちFileSystemObjectのインスタンスを作って再帰処理とかしなくてもフォルダ関連の処理は組み込みのコマンドレットで大抵何でも出来るし、概してVBAで処理するより高速で軽い 参照カウンタ方式でメモリ管理をしてるVBAで巨大フォルダの処理をやるとうっかりスタックオーバーフローさせちゃうリスクが高いし
PowerShell大嫌い C#のつもりで書くとドツボにはまる .NETのコレクション使うような込み入った処理に使うには最悪
>>606 スタックオーバーフロー?
フォルダ階層に対する再帰処理で?
マジか. ..
PowerShell自体は悪くない。 けど、使ってる奴が根本的に能力が低い。 それとも、ここに来てるPowerShellユ―ザーがかな。 処理を作れるかどうかというレベルじゃ無くて要件に合ってるかどうかというレベルで能力が低い。
パワーシェル自体絶望的にセンスが悪いからバカがあんだけ食いつくんやでw
RubyもPowerShellも同レベル。 要件を分かってない。
常に、シェルスクリプト・バッチ・VBA のスレでは、 PowerShell, Ruby を使えっていう結論になるw
ならねえな。 VBAとバッチ処理は対極にあるといっていい。
>>579 みたいなふわっとした要件を勝手に有利なように解釈しないとマウント取れない言語
それがVBA
>>616 そもそも何からマウント奪いたいんやおまえは?w
>>579 から要件を把握できるエスパーは凄いね、心から尊敬するよ
>>614 じゃあさパワーシェルやルビーは専用スレに行ってもらうことにしようか
>>619 パワーシェルやルビーはどこにも行けんやろw行くならおまえやw
天然なん?w
>>621 パワーシェルのスレに行けば良いじゃん
行くとこなければ死ねばいいと思うし
パワーシェルに親を殺された奴いて草生える 何がそんなに気に入らんのや
モスバーガーでマクドナルドハンバーガー美味しいと言ってる人居たらマクドナルドハンバーガーに行ってマクドナルドハンバーガーを美味しく召し上がれよと思うじゃんそんなにマクドナルドハンバーガーが好きならさ
何かの事情があってモスに来てる奴が本当はマックの方がいいのに、、、とかぼやくくらいのシチュエーションなんて普通にあり得るんだよなぁw
本当はマクドナルドハンバーガーに行きたいのか? どうしてマクドナルドハンバーガーに行かないよね?
テキストファイル(XMLファイルやJSONファイル)を1つのブックに詰め込んで出荷したいのですがどうすればいいですか? データ用のシート・セルを用意してText属性に書き込む方式は自分でも考えましたが「それテキストファイルじゃなくてシートじゃん?」ってなるのでNGです C#やVB.NETでいうところの埋め込みリソースが理想形です
ファイルは無理だがコードでいいなららテキストボックスに書けばよかろうよ
>>630 なんでいきなりガイジ扱いやねんw失礼やわーコイツwwww
>>626 ここにきてる奴らはぼやくレベルじゃないぞ。
持ち込んで食べて、ゴミそのままで帰るレベル。
>>632 エクセルは表計算ソフトだよ
データはシートに入れなさい
開いた状態の読み取り専用のエクセルをVBAで解除ってできますか?
>>637 シートにデータを置いた状態でセーブするんじゃダメそうだけどシートを使わずにできるの?
>>616 ビックリ。
>>579 のような要件じゃアドバイスなんてできんだろと思ってたら勝手にPowerShellでアドバイスしといて、条件でてきたらその言い草かよ。
PowerShellが良いと言いたいだけで、要件なんて何も考えてなかっただけだろ。
Powershellってどこかにプロモーション部でもあるの?
仕事だと担当即外されるレベルだろうけどここは自由な場所だからね
>>632 そんなフザケた要件、zipファイルに同梱で諦めろよ
バカバカしい
VBAでは変なハックしないとリソースファイルを簡単には纏められないんですか 残念です
pdfから特定のデータだけ欲しいんだけど基本機能じゃ出来ない? acrobat?買え言われた とりあえず全選択貼り付けで正規表現で必要な値取るようにしたけどもっと手軽な方法あったら教えて
デコードしてファイル読み込んで情報を探すだけでは?
PDFのファイルフォーマットみて自分でなんとかできるならVBAの基本機能でできるかもしれんが 手軽な方法はそれ用のライブラリ探すことからだな
あまりに冗長なCOBOLコード(負の遺産)に嫌気がさし、ソース解析マクロの作成を決意。 作りたいものがあるとモチベ上がるよね
ソース解析ツールなんてそれこそ金出してでもコーディングの手間を惜しむべきコモディティじゃん VBAでやる必要あるのか?
ホストにある資源を自分のローカルに持ってくにはテキストファイル化せなあかんのや。 メソッド同士をハイパーリンクで紐づけたり、使ってるサブルーチンを表にしたり。なんやかんやでVBA様便利やでー
幸い、COBOLはクラスとかアクセス修飾子って概念がないので他言語に比べたら解析ツールは楽に作れそう…って見立てや
>>655 ホストにある資源って言ったら普通データのことだろう。
COBOLプログラムが資源なのか??
>>656 VBAを選んだ理由を示しただけや。
やっぱりエクセルの機能を生かせるのがVBAの強みよ
VBAでCOBOLの構文解析とかそんな苦行に苦行を重ねなくてもまともなツールぐらい腐る程あるだろ… と思って検索したらIBMのプログラムの次にVBAのツールが出てきて変な声出た
タンスの奥を探してたらゴキブリの死骸を見つけた気分だ…
>>659 認識の違いかな。すまん
俺はソースコードもホストの資源だと思ってるよ
データもソースも結局はデータセットに入っているわけだし
つーかCOBOLに限らず古い言語って解析機の設定難しいよ 古いものは文法が洗練されてないので当然っちゃ当然だけど
なんや急にこの賑いwプロさんてみんなコボラーくずれなんかw
>>660 そもそも、レガシーなモノを解析するツールを、わざわざ新しい言語で開発するなんてあまりないんだろうな…
>>665 そうね。大昔のソースは見ていて頭痛がするわ
谷のように深いネストやGO TOの嵐…
だからこそ何かツールを作ってみたくなった
>>663 COBOLソース解析してどう再利用するのさ?
そこがわからん
流れ関係ないけどVBAってやっぱりネット上に良質の情報が少ないんだよ。 今のqiitaとかなんだありゃ。いったい誰に語りかけてるんだかわからん記事が多すぎだ。
良質な情報は良質なプログラマから発信される アマチュア主体のVBAじゃ限度がある
でもプロが作ったシステムより社内で作ったものの方が完成度高いんだよね
わざわざVBAのノウハウをqiitaに投稿してくれる熟練者がいないのかもな。 VBAはあくまで仕事のためのちょっとしたツール作成のための手段というイメージ。 いわゆるガチな人の大半は、もっと違う言語に目を向けているのだろうな
かなり以前にシステム移行で既存のCOBOLソースのチェック用にVBAでソース解析のツールを利用したことはある。 解析とは言ってもホストのコンパイル済みソースをPCに落としてその後どうしたか…もう昔のことで覚えていないw
棒グラフの作り方で質問です。 バーの色を、データ元のcellや文字色に対応させて一括変更することは出来ますか?
>>675 できません
>>676 は貴方を騙そうとしています
彼には十分気をつけてください
>>675 VBAなら簡単に色の変更ができる
行の値を順番に見て見入って 別のシートのB列に存在していればA列に●ってのを入れたいのですが For i = 1 To Range("B2").End(xlDown).Row If WorksheetFunction.CountIf(Worksheets(Sheet1).Range("B1:B1000"), Range("B" & i).Value) = 0 Then Range("A" & i) = "●" End If Next 5000行でもかなり時間がかかります。もっと時間がかからないやり方があれば教えて下さい
>>679 のプログラム Sub Macro1() ActiveSheet.ChartObjects("グラフ 1").Activate With ActiveChart For k = 1 To 2 With .FullSeriesCollection(k) For p = 1 To 10 .Points(p).Format.Fill.ForeColor.RGB = Cells(p + 1, k).Interior.Color Next End With Next End With End Sub >>680 作業列作るなりしてワークシート関数でやった方が早いよこんなことは
あと、この条件だとSheet1に値が存在しない場合にA列に●がつくことになると思うよ
?とりま全部配列にぶち込んで置換処理してから書き出しでは?
>>673 VBAのスキルをアピールすると逆にバカだと思われるから
煽りじゃなく転職とかで事実そういう目で見られる
>>632 まず第1にマクロの記録はやってみたのか?
やりもしないで質問するじゃ回答がつかないのも仕方無かろう。
次に、内容をよく見ればXMLやJSON関係ないだろ。
テキストファイルさえ関係ない。
質問する時にいらない情報は削った方が良い。
>>636 >>646 君が元の質問者かどうか分からんが、マクロの記録さえやらない、もしくはそういう機能さえ知らないレベルの者が回答がつかないからといってVBAでは難しいなどと思い込むのはどうなんだ?
元の質問者じゃ無かった場合だとしてもディスる為に試してみることさえしないようなレベルの奴は、そもそもプログラム組むような仕事はして欲しく無いな。
周りにとって迷惑だ。
>>647 基本機能というのがどういうものか分からんが、PDFの仕様が分かればファイルの読み書きで出来る筈だ。
昔、そういうのを書いたことがある。
ただし、PDFの場合、バージョンと扱いたいデータによっては出来ないこともあるだろう。
PDF関連は、ここ読んでVBAで作ったことあるけど、面倒だったな
http://pdf-file.nnn2.com/ >>685 マクロの記録でどう操作すればファイルを同梱できるん?
>>685 文字列型データをセルやテキストボックスのような組み込みオブジェクトのどれかにコピーするという単純な話だと誤解してないか?
埋め込みリソースの意味が分かってないなら君が黙ってた方がいいと思う
basファイルというか標準モジュールに行頭カンマ付 or 二重引用符付でデータを書き込んでおいて、そのデータをマクロ実行時にコピーして任意の形式のファイルを生成するとかはどうかな
この方法なら一応、エクセルのオブジェクトへのテキスト保存という方法よりは埋め込みリソースに近いイメージになるかも
VBEの操作を含むマクロになるので配布のハードルが著しく高くなるし、画像とかなら埋め込んでおくデータをバイナリデータにするとかの工夫が必要だけど
>>689 >>690 ???
あのさあ、試してから言ってくれないかな。
1.[開発]リボン→[マクロの記録]を選択
2.[挿入]リボン→[オブジェクト]を選択
3.[オブジェクトの挿入]で[ファイルから]タブを選択して、ファイル名に適当なdllを指定する。
4.[開発]リボン→[マクロ記録の停止]
これで基本的にどんなファイルでもシート上に埋め込めるソースコードが出来てると思うんだが。
俺の誤解だったらすまないが、俺への指摘が噛み合ってるように見えないもんで。
埋めこみオブジェクト自体は誰でも知ってる基礎的な話だと思うんだよ。 なにしろ20年以上前に初めてExcel触った時からあった機能だと思うんだよな。 シートに画像を貼り付けたつもりなのにアイコンになってしまったなんて質問をそれぐらい前に見たような気がするんで。 であれば何らかの理由が無い限りマクロの記録でそのためのソースコードが出来るだろうと考えるのも当然のこと。 何でこんな質問が?とも思ったけど、何らかの理由があってマクロの記録では記録されないような機能だったかなと試してみたら記録された。
>>688 俺が書いたのはこんな便利な機能使ったものじゃないと思う。
PDFのファイル構造はググれば出てくるが、バイナリをゴリゴリする方法だったと思う。
OLE使った記憶が無いもんなあ。
すまんが、大分昔で自分がどんな方法で書いたかはほとんど覚えていないのでかなり曖昧。
ゴリゴリ書く方法はお勧めしない。
>>688 のリンク先の技術を使った方が良いね。
>>691 ありがとう
やり方がわからないから聞いてるわけで
わからないんだから試せるわけないよね
次からはもっとさっさと説明してね
オブジェクトの挿入じゃダメだった? と聞くのがいんじゃないかな マクロの記録は試したかじゃ意味がわからないよ
教えてくれてありがとうという感謝の気持ち 態度が気に入らないという憤慨の気持ち
ファイルを埋め込むという機能が存在する、そしてその方法も知っているけれどもそのVBAのコードを知りたいという質問と受け取ったので。
久しぶりに質問スレらしい流れになったことを謹んでお喜び申し上げます
>>680 並び替え可能なら、Matchのバイナリサーチモードで1Sec以内で終わると思う。
>>693 記憶が曖昧とか誤魔化さなくていいよ
ググったらそれらしいものが出てきたからドヤりたいけど、やったことないからやったことあるって断言したくないなーってところかな
横からだが
>>632 のやりたいことを誤解してたようだ。
シート以外の場所にテキスト情報を埋め込んで、なおかつプログラムから直接その内容にアクセスしたいんだと思ってた。
埋め込みオブジェクトじゃそんなこと出来そうもないしな。
単に同梱したかっただけなのか。
>>704 質問者ですがあなたの理解のほうが正しいです
埋め込みオブジェクトの話ではありません
余計なシートやオブジェクトを増やしたくはありません
>>705 ふーんそうなんだ
念のためだけどテキスト情報は隠蔽する必要があるの?
それと量はどれくらい?
>>702 ???
俺は
>>688 じゃないし、ググってもいない。
当時PDF Hack読んでたからそれに載ってる情報かもしれないが、手元にPC無いから確認できん。
PDFの仕様はググれば出てくるぞ。
後はバイナリで読み込めば良い。
当時作ったのも、サンプル程度の断片だ。
家で探せば有るとは思う。
>>703 ドーナツ画像をPDFにするだけじゃね?
そんなことを知りたいの?
>>706 C言語やC#などの埋め込みリソースを使用するのに適した場面と同程度を想定してください
>>705 自分が少しおかしなこと言ってる自覚ある?
テキストファイルに画像を埋めこみたいと言ってるようなもんだぞ。
それでテキストにエンコードして追加してもテキストファイルじゃないと言い張ってるようなもんだ。
俺もブックはZip圧縮したものだから、単純に中に含めることも考えたけど、それって正式にExcelのブックと呼んで良いのかね?
JPEG画像なんかにファイル埋め込むのと一緒。
お客様の中にオプンエクスエムエルの仕様に詳しい人は居ませんか? カスタムファイルを含むことはできるんでしょか?
>>710 おかしいでしょうか?
テキストや画像とマクロブックでは利用目的もなにもかもが全く違います
テキストに画像を埋め込みたいという需要はあまりないかも知れませんが(まあSVGとかありますけどね)
マクロブックは1ファイルであることに非常に大きなメリットと需要があります
もしも他の言語で出来るようなスマートな方法でファイルリソースを埋め込むことができないならば
それはマクロブックのアイデンティティを揺るがしかねない由々しき問題です
>>707 自作PDFを齧った人なら「仕様はadobeから出てるよ」「後はデコードしてテキスト処理すればいい」と言うんじゃないかな?
レス付けてくれてる人ありがとう ただ初心者で事務員レベルの知識しかない為デコード云々言われても全然ピンときてないわ とりあえずurl参考にもう少し学んで、まだ分からない点あったら後日改めて具体的に聞く
>>712 PowerShellやRubyではどのように埋め込みますか
Rubyでは埋め込まないで ファイルそのまま置くだろ Webアプリが多いし
シートこそテキストの埋め込みに最適な気がしてきた セルに名前付ければそれが擬似的なファイル名じゃないか
>>688 の参考サイト見たけどやっぱりacrobat proが無いと動かんみたい
理想は標準機能(オートメーション?)での操作なんだけどproが無いと無理そうだよね?
あとpdfデコードしてーてのは普通にpdf開いてテキスト部分がバイナリ化?されてるからそこを戻したらテキストいじれるて理解であってる?
>>712 そういうことを言ってるんじゃない。
>>711 を見て、そういえばそうかと思ったわけだけどOpenXMLの仕様にあればおかしく無いんじゃね?
仕様に無ければ例えExcelで開くことが出来ても不正なファイルだろという意味で言った。
よく考えればVSTOもあるし、Excel上で手動で出来ないことでもブックの仕様として、あり得るわな。
実際に仕様としてあるかどうかは知らん。
ここは一つ、ぜひRubyキチガイにワンライナーでこうするんだ!ってのを書いてほしいっす
>>713 当時、Adobeから仕様を取得したかどうかも覚えていない。
もしかしたらPDF Hackのサンプルを弄った程度かもしれんし。
当時は、Anotationをどうにかしたかったんだが、それは出来なかった。
Pro版で作ったPDFはReaderからAnotationを追加出来たんだよな。
レビューコメント追加するのに便利だと思ってた。
でも配布元がPro版じゃ無かったから
うまい追加方法が無いかと。
Anotationをどうにかしようとしてたとすると、俺も何らかのライブラリ使ってたかもしれない。
テキストファイルに画像(というかバイナリ)埋め込みは昔からuuencdeとかあるんだから そういうのを応用すればExcel VBAでもコード内に埋め込みはできるよね? data = array( "埋め込みコード1", _ "埋め込みコード2", _ "埋め込みコード3" ) decode2file(data, file)
コード内に埋め込みなんて メンテしにくくて効率悪い 今は普通にファイルで管理するでしょ?
それぐらいバッチ処理すればいいじゃん そういうのすら面倒なら知らね
>>721 断じていつものruby基地外ではないがテキストだけならこれで
Poppler::Document.new(“hoge.pdf”).map(&:text).join.scan(/必要な値の正規表現/)
プログラムを簡単に作ってやりたいが 簡単にしすぎるとVBAにたどりついてお金がかせげない
PDFからのデータ抽出と言えばゴーストスクリプト使うのが一般的ちゃうん
>>723 1ファイルが良い理由の1つにユーザーが扱いやすい、つまりユーザーがメンテしやすいってのがある
なのでそういうメンテナンス性を著しく低下させる方法は意味がない
>>730 あれpdf作る側で読み出しとかできるんだっけ?
謎の1フォイルへのこだわりてそんなにメジャーなんか?
埋め込みオブジェクトってVBA的にどうにか役に立たせられないものか dllを埋め込んでスタティックライブラリ化できれば嬉しいんだががが
>>731 使う側が1ファイルに見えれば提供側は別に複数でもかまわんだろ
それに一度埋め込んだならメンテする手間は同じやぞ?
埋め込む前は複数ファイルなわけだしな
シェルのヒアドキュメントも埋め込み時はひと手間掛かるし 1ファイルに収める場合はどの方法でも手間は掛かるよ VBAだとその手間がちょっと増えるだけ
>>738 だから一度埋め込んだらメンテする手間は同じだってば
想像力ないの?
メンテ要員「このデータどうやって作成したん?」 俺「このバッチ叩くとファイルがデータに変換されるからそれ埋め込んでね」 メンテ要員「あーわかった」
そのバッチをエクセルと一緒に配布するのか?それじゃ2ファイルじゃないか メンテする人は、え?1ファイルでいいのになんでわざわざバッチ実行して、ファイル増やすんですか?意味わからないです、普段使ってる開発環境で編集したいですって混乱してしまうぞ 想像力を働かせろ、運用している現場をイメージしろ
>>741 埋め込む前は複数ファイルなんだからその時点で君の主張は破綻してるんだよ
必要ならそのバッチもVBAで作ってエクセルに突っ込んどけ知能遅れ
つまりVBAは埋め込みリソースも自然に扱えないのですか?
変にVBAなんか組むよりバイトとかパートの人にアナログに作業させた方が早かったりもするよね 自分の時給の1/4とかだし、1時間コード打つのにかかるんなら、彼らが4時間を超える作業量でないと損になる
一回で終わる作業なら大抵はVBAなんか要らんだろ 繰り返す定型作業だからVBAで自動化する
>>744 今回の場合は手作業でできるものじゃない。
それに、そんなことして良いのかの回答もまだ得られていない。
>>743 まずさ、その埋めこみリソースとやらの定義をきちんとしてほしい。
君がどういうレベルの質問をしているのか分からん。
ブックの仕様ではそういうものを扱えることになってんの?
手作業はミスする可能性がある 1回限りの操作でも例外がなければVBAのが確実な結果が得られる
>>748 vbaでもチェックしなきゃいけないのは変わらないし安く上がるんならそのほうがいいと思うけどね
ちなみにVBAの右も左も分からない丸っ切り初心者です
>>751 自動化したいことを決める
マクロの記録をしながら実際に手動でやってみる
生成されたコードを見ながらforやifで制御する
の繰り返しやな
一番大事なことが抜けてる。 生成されたコードの各行がどういう意味なのか考える。 例えば Range("A1").Select Selection.Value="hoge" なんてコードが生成されてたら意味は A1を選択 選択された値に"hoge"を代入 となる。 だったらA1に"hoge"を代入するコードは Range("A1").Value="hoge" で良いよね。
>>752 >>753
ホント何も分からない状態なので、
参考書やサイトがあれば教えてほしい
だったら、ってサラッと流してるけどさ、 Range("A1").Select : Selection.Value = "hoge" Range("A1") ="hoge" Range("A1").Value = "hoge" がほぼ同じ動きをするってこと、ガチの初心者は教わらないとわからないよ
>>680 シートの再計算を切った方がよさそうですね
>>753 なるほど
アマチュアVBAerのコードがクソな理由はそのあたりにあるんだね
>>756 ありがとう!
ちなみにPCの買い替えを検討中なんだけど、
オススメのPCはあったりする?
VBAを問題なく扱えるスペックで
マックの新モデル(いつ発売か知らんけど)を買おうか迷ってたんだが、
他にあれば教えてほしい
VBAはWindowsとExcelしか使うことを許されていない人が仕方なく使うものなので、 Macの使用が許される人は素直に別の言語を学ぼう Mac使うなら(言語じゃないが)AutomatorやAppleScriptなんかが初学者にはいいぞ
>>759 Windows10が入ってて、ドライブがSSDで、CPUがintel i5のを選んどけば間違いない
新品だとだいたい10万円だけど中古でも問題なし
本当にExcel VBAだけが目的なら型落ちWindowsでOK 他にもやりたいことがあるならVBAだけで決めるのはハイリスク
Excel(Office)が入ってるかどうか確かめるのを忘れないように パソコンと別々に買うと高く付く マイクロソフトのOfficeならどのバージョンでも大丈夫だけど、キングソフトのはダメ
事務仕事をやっていてVBAが使えたら便利だなと思っていて、 VBAのスキルを(仕事に生かせるレベルまで)身に付けたら 他の言語にも手を広げたいなと考えている プログラミングのことはチンプンカンプンだけど、 ググったらプログラミングやるならマックがええでって記事をいくつか見かけたので マックにしようかと思ってた エクセルも使えるし だから、皆んなの意見を聞いてどうすればいいのか分からなくなってきた
VBAを習得したいのかもっと一般的なプログラミングを習得したいのかハッキリさせよう どんな事務仕事を楽にしたいんだ?まずはそこを明確にしていこう
マウスコンピューターの乃木坂46 モデル
https://www.mouse-jp.co.jp/m-book/mbb506/?intid=nogi_btn003_asuka CPU-i7, 512GB SSD で、10万円!
これを、メモリ・保証期間を最大まで、カスタマイズする
>>766 VBAを仕事に生かせるレベルまで習得してから他の言語も勉強したい
ほんの一例だけど各部署の旅費集計作業とか全自動化させたい
>>766 他の言語=一般的なプログラミングなのかな
一般的なプログラミングがどういうものかわからんが
>>769 (VBA含めて)プログラミングというものを勉強してみたいのかという意図だった
その要件で勝手にエスパーするとExcel操作しまくりだろうからVBAがいいかもね
PCは仕事で使ってるやつとOS, Officeのバージョンが同じの買えばいいよ
本職になるつもりならVBAから入るのはお勧めできない 変な癖が付く
将来VBAってこんなに糞だったんだなと思い知るのもまた一興…
>>770 操作しまくりだけど難しいことはしていない
事務作業では既にどこかの部署又はグループ会社の社員が作ったマクロを動かしてるだけだから
多少の関数は使うけどその程度
VBAだけやるなら会社のPCと同じやつでいいかもしれないけど、
VBAの先に他の言語もやりたいってのがあるからさ~
そうなるとマックがええんちゃうのってグーグル先生が言ってまして
まあ、とにかく参考になりましたわ
ありがとうございます!
>>773 万が一他のプログラミング言語に興味を持った時は Visual Studio 2017 Community版 を入れればいい。
解説書も本屋に行けばたっぷりある。
大概の事はそれでOK
プログラマじゃないんだから、別に興味を持たなくとも良し
>>774 なんやようわからんがそれを入れれば他の言語も開発できると
マックはそれを入れなくてもええの?
>>777 マックの事は全然知らん
みるみるプログラミングがわかる本
掌田津耶乃
↑を立ち読みすれ。確かマックの開発環境のことも書いてあったような記憶がある。
まぁ素人なんだろ?Winにしとけって
Mac は高い。素人は、マウスで十分。 最大限メモリを積めばよいだけ 3年ぐらい、プログラミングしてから考えろ。 まあ、その頃には、たぶんやめてると思うが
初めての言語でExcelVBAって悪くないと思うけどなぁ Excelのオブジェクトを操作するのもイメージしやすいしすぐにそれなりのもの作れるようになるし
そしてJavaとかへ行って大量のカラムを持った壮大なテーブル作ってぐるぐるSQLするまでがテンプレ
>>750 >>751 >VBAの勉強法
VBAの入門書がたくさんあるからまず一冊読んでみ
それから実際に簡単なコードを書いてみること
何かのデータを集計してCSVにして出力しようとか
そうやってだんだん分かってきたら
実務に使えそうなコードを書いてみる
最初は挫折することも多いと思うけど
小さな部品を組み合わせて大きな仕事をする
という方向で考えると上手くいくことが多い
これはVBAに限らずプログラミングの基本
>>765 >プログラミングやるならマック
Webサービス作ったりするプログラマになるならMacもいいが
あくまで本業は事務職でVBAも組むだけならWindowsが良い
なぜなら事務の仕事で使うのはMacではなくWin機だろうから
環境が違うことでいろいろ支障が出るかもしれない
>>781 ExcelやVBAよりLinuxの方がはるかに難しい
まあ電子工作とかIoTとかやりたいなら
ラズパイは安くて面白いオモチャだと思うけど
>>782 VBAは入門用言語に向いてると思うけどね
GUIがあるから動作が分かりやすい
ただもちろん本格的にプログラミングするなら
他の言語もやらないと筋が良くならないね
VBAしか知らない人のコードってただベターっと処理を並べて
OOPどころか構造化もしてないようなコード多く見かけるから
構造化してないって具体的にどういう感じのコードになるんだ?
>>785 小さな部分を組み合わせることは重要だが、それは一つの観点に過ぎない
プログラミングはトップダウンで考えてボトムアップで作る
VBA上がりの人は大抵このトップダウンで考える部分が抜けてて、その結果
>>788 の言ってるようなベターっとしたメンテ不能の糞が出来上がる
>>791 >プログラミングはトップダウンで考えてボトムアップで作る
>VBA上がりの人は大抵このトップダウンで考える部分が抜けてて
そうだね、言いたいことはよく分かるよ
ただ最初からトップダウンで考えるのって難しいんだよ
かなりプログラミングに慣れてから分かってくることで
部品を組み合わせることを続けて訓練していくと
最初からトップダウンで設計できるようになっていく
>>789 >構造化してないって具体的にどういう感じのコード
関数に切り出して部品化しようって意識もなくて
百行なら百行、必要な処理をそのまま並べてるとか
それで必要な処理とかが増えて
そのまま規模が大きくなっていくと
メンテできなくて破綻する
VB系から入るのが危険なのって、一番は何が正しくて何が正しくないのかを理解しないまま正しくないものに触れてしまうことだと思う 書籍やWebサイトのサンプルの質が低すぎる ある程度分別がついてからであれば、あ、これ真似しちゃいけないやつだ、と分かるんだけどな
>>793 草生える
そこまで酷いと、ひょっとして操作対象のセルのアドレスや行や列のインデックスとかも動的に取得しないでリテラルでいちいち指定してたりするのか?
>>753 俺が初心者に毛が生えたような人間だからだろうけど、まず「hoge」とかいう全く慣れない単語を使うところから嫌になるんだよな
「a」とか「x」でいいんじゃないのかと
トップダウンで作れないのは抽象化という概念を知らないからだろ
トップダウン、ボトムアップって別にそれでもいいんだけどさ、そういうことを言う奴がプロジェクトを台無しにしてたりもする。 どんなモデルでもある程度のプロトタイピングは必要だし、スパイラルにもなり、テストファーストな部分もある。 ところが頭でっかちで言葉に囚われて、おかしなことになってたりする。 ブックを開くコードも書けなかったら、色々試してその方法を獲得しておく必要があるだろ。
>>796 見慣れない言葉を使ってるのは、コードの可読性を確保しながら任意の値であることを示すためでは
その観点で言うとアルファベット一文字は論外だし、なまじ意味のある言葉だと既定の固定パラメータだと読み手側に勘違いされるかもしれない
>>800 などのような説明があるとわかるんだけど、前提とされているのかそういったことを細かく書いてる人は少ない(私が勉強してる間は見たことない)し、なんかやりづらさを感じるのが正直なところ
そもそも自分で作る簡単なやつならaでもxでも何でもいいわけだし
>>800 ホゲで可読性があがるとは思えないの
言うなれば男らしさをアピールするために眉毛を繋げてみました
と言ってるようなもの
hogeという文字列を使う人間からはそういうサイコパス的な
不気味さを感じる
>>802 ぶっちゃけ慣れの問題でしかない
ある程度慣れてくると逆に任意の文字列値を代入することが明らかな箇所でわざわざそのような説明が付されているとわずらわしく感じるようになるぞ
かつてデフォルトという言葉が浸透していなかった頃、かっこつけてるけどみんなが理解しにくい言葉を使う奴はバカだと思ったりもした。 何も考えずに"hoge"や"fuga"を使ってるが"任意のデ―タ"とかの方が良かったか。
文系にありがちな本質と関係ないところで無駄に意味を求めてつまずくタイプ
「ほげほげ」とか「ほにゃらら」とか久米宏がよく言ってなかったっけ?
質問なんぞどうでも良くて、それをネタにただただ雑談したいだけのスレ
そりゃ意味のある質問や回答は10年以上前に出尽くしたからだろうね
>>810 プロさんが稚拙なプログラミング論を教えたがるスレや
>>809 ホニャララは堺マチャアキがまだ言ってるだろ
>>804 まあそうなんだけどここで言いたいのはVBAを初めてやってみるとエクセルではない何か変な壁みたいのがあるんだよね
大変だよねっていう
>>816 そうか?
VB系以外のまともなプロミングができる人がVBA使うと、抽象化されたデータモデルを念頭に置いた作りになるからかなりとっつきにくいけど、
VBAの本で出てくるコードなんか所詮は操作の自動化をしてるだけでしょ
操作手順書のフォーマットだと思えば何も難しいことはないよ
確かにVBAから入った若手はプログラミングが下手 綺麗なコードを書くためにやってはいけない悪い習慣のオンパレード その元をたどっていくとVBAで身についた癖だったということがちょくちょくある
むしろマトモな感性の持ち主ならvbaでクソコード見すぎてクソコードは悪という考え方が育ってマシな書き方しようとする
たしかにhogeは慣習だけど筋が悪い命名だと思う 「A123」とかとそんなに大差ない 意味の分かる名前を付けるのが プログラミングの大原則
>>798 悪書じゃなければ何でもいい
Amazonのランキングとか見れば
>>816 おまえもしかしてここでvba学ぼうとしとらんか?w
変な壁みたいな奴しかおらんぞここw
引数にはちゃんとした名前を付ける ローカル変数はhogeでいい
>>817 そうか?って言われても…
そうだって言ってんだしさ
意味がない=どんな予約語や変数とも被らないという大きな役目とメリットがある。 sampleなんてつい使いがちじゃないか……
VBAだけしかできないですが、VBAだけでも完璧に操れるようになりたいです 他の言語で色々やってみろと言われますが、まだデバッグモードもまともに使えませんしSub()とEndSubだけで囲んだだけのものからつい先日卒業したばかりです まだ他の言語で色々やってみるのは早いでしょうか、もう少し留まって勉強するべきでしょうか だけれどもVBAでは具体的な成長方法がわかりません もっとできるようになってVBAでかなり複雑なガントチャートでも作れればオバちゃんたちがもっと楽になるはずなのでそれが目標です
>>833 具体的な目標があるんなら、それを実現するために一番いい方法が何か、をまず考えるのがいいと思うよ
それがVBAなら、目標に沿ってVBAを勉強すればいいし。そういう風にしないと勉強しても身につかないしね
>>832 それは関数を分割するなどしてスコープを分ければいい
「sample」だと名前がかぶるから「hoge」なんて筋が悪い
>>835 理想的なくらいに分割したら
そもそもローカル変数の必要性はかなり低くなると思うの
>>833 VBAはExcelありきの言語なので
Excelに向いてないことをする必要があるなら
いつといわずすぐにでも他言語を覚えるべき
>複雑なガントチャート
それはVBAで組むもんかなあ……?
C#とかJavaとかPythonとかRubyとか
汎用言語で組みたいなあ
>>836 >ローカル変数の必要性はかなり低くなる
ん? どういう意味?
グローバル変数を使うって意味なら反対
関数型プログラミングの意味なら良いと思う
>>833 VBAと親和性が高いのはC#
ただ、ガントチャートが作れるかどうかは分からないから、
入れるVSを確認して
具体コードの中で変数や関数に意味づけするのは当たり前。 ロジック例示でのhogeは全然アリで寧ろそうして欲しい。頭が抽象思考しやすくなる
>>839 >ガントチャートが作れるかどうかは分からない
いや汎用言語ならどれでも確実に作れるでしょ
しいて言えばGUIが大変とかはあるけど
>>838 「理想的なくらいに分割できたけどグローバル変数使ってます」では語義矛盾だよねw
「ローカル変数がいらなくなる」ってのもうまく分割できたかどうかのバロメーターになり得ると思ってる。
ブックA ブックB ブックC ・・と複数のブックがあったとして、 ブックAとブックBを参照して値をコピーしてブックCに張り付けるとき ブックAをオープン ブックBをオープン ブックCをオープン for文 if( workbooks("ブックA").worksheet("Sheet1").Cells(X,Y).value = workbooks("ブックB").worksheet("Sheet1").Cells(X,Y).value ) ブックCに値を設定 という具合に、ブック名から指定して参照するコードを組みこんでいるのだが 処理が複雑でなければ処理速度はさほど気にながらないが、for文がいろいろ重なると、やたら処理速度が重くなる。
PowerShellとExcelで指定フォルダ以下のPDFファイル一覧をリンク付きで出力
https://qiita.com/takaaki3110/items/8b51e3df81e73fdd4585 みんなこういうのが好きなのか?
>>844 PowerShellで処理して結果をExcelファイルに書き込むってこと?
なら結構好き
逆にExcelファイルからデータ読み出してDBに書き込むとかもよくやる
おまえらって偉そうに講釈垂れてるけど、 職業はPGやSE又はそれらに類似する職種、業務をしていて、尚且つ最低でも10年はバリバリ働いてるんだよな?
>>844 好き嫌いはどうでもいいけど日常作業としてよくやるね
逆にExcelをVBAで拡張して操作感UPみたいな使い方は業務では意外と需要が少ない
>>847 ここの書き込み見ればそんな奴居ないのはわかるだろ?
普段の作業はキッティングがいいとこ。
>>834 >>837
>>839 アドバイスありがとうございます
大事なことを言い忘れてましたが、職場ではVBA(VBE)以外は触れそうにありません…
それでも家ではC#の勉強をして、プログラミング能力を高めてから複雑なガントチャート作りに取り掛かった方が良いでしょうか?
たのしいRuby 第5版、2016 まず、この本を3回読む C# なんて、難易度が高すぎる。 数年後に考えろ
でもC#ってWindows標準でコンパイラついてるからメモ帳でもプログラム作れるよな 会社のPCでもC#使えるのでは
それ言い出したらVBコンパイラも付属してるし、VBscript、バッチ、ブラウザ経由のJavaScript、標準で使える言語はいくつもある 言語ごとの文法の違いよりも、基本アルゴリズムをたくさん知ってる方が重要
>>849 キッティングがマシな方なのか…
お仕事お疲れ様です w
「キッティングがいいとこ。」 という表現をどのように解釈するか。 オレには疑問の余地はなかったが世の中は広いな。
ペッティングもやったことないからよく知らんのよね実際
現代のプログラミングではアルゴリズムは必須の知識ではない なぜならモダンな殆どの言語が標準/非標準のライブラリで様々なアルゴリズムを網羅しているから 不幸にも既存の実装がなく自作が必要になった場合でもそのときになってから調べればいい 調べて実装したらライブラリ化して最悪アルゴリズムを忘れても問題ないようにする アルゴリズムを学ぶ暇があるならオブジェクト指向関連の考え方やテクニック、イディオムを学んだほうがいい あとは他人が作ったエコシステムに素早く馴染む学習能力と好奇心が現代のPGにとって重要 これらはVBA縛りではなかなか身につかない
>>843 再計算とスクリーンアップデートをオフにしてます?
自分も最初それをせずに、遅かったことがあったので。
>>852 マジか
うちの会社指定外ソフトのインストール不可だから、
VBA、VBScript、JScript、javascript、PowerShellしか使えないと思ってた
C#って言語の難易度的には高い方?
低学歴知恵遅れアルゴリズムのライブラリがあっても 適切なアルゴリズムが選択できない このスレにいるような 低学歴知恵遅れによくあること まずまともな教育を受けてないからな
ライブラリが充実していない言語ではアルゴリズムを選択するという機会に恵まれない 機会が少ないので適切なアルゴリズムを選択する能力は退化していく そもそも選択肢がないのだから当然の帰結だネ
>>860 横からだけど、Excel2010から2016にアップデートした後やたらと遅くなったわ。
誰かが作った部品を組み立てるだけなのと、最適な部品を調達 (自作) できるのでは、どっちがいい結果が出せるか パソコンのソフトやハードに限らず、どこの業界にも言えることだけど
/|∧ヘ /( (ノ人 ハ / ̄\/) ( Y## ヽ> (>|## (_Z (ノ|## (_ノ ( ハ## /_> (/ヽ_r(_ノ| レ(|(ノソ|| __ ヽハノ|| /// __ ||/ / / ヽ \ ||// | \ ヽ|| ̄ ヽ__>|| || どんなかなしいことが あっても やせがまんでもいい ひのあたるばしょで つよくいきていこうと おもふ そう たんぽぽのように
①最適な部品を調達(自作)して最高の結果をだすには時間と投資と努力が必要 ②手頃な既製品で合格基準を十分に満たす結果をだすのは簡単 他の業界は知らんがIT業界では②のほうが重要な事実だなと気がついたのでOSS文化が発達した 更に言うと今は、調達(自作)した部品よりも、手頃な既製品のほうが高品質なんだよね
>>861 開発環境と、作ろうとするものによるかな
クラスの少ない簡単なコンソールアプリを作るくらいならメモ帳使って手打ちでも作れる
複雑なアプリや本格的なGUIアプリとかを作ろうとするならVSや高機能なテキストエディタを使わないと大変なんじゃないかな
手打ちでも出来なくはないみたいけど俺には無理
>>850 ガントチャートならVBAで組むのが良いね。
まず前提として、君は複雑と言ってるけど"ちゃんとした"ガントチャートなら作るの無理でしょ。
高い金出して買うんだよ。
MSProjectとかさ。
(あれがちゃんとしてるかどうかはおいといて)
だから作るということはさ、結局ちょっとしたガントチャートということになる。
その程度で良いのならVBAでExcel上に作るのがお手軽でいいよねという話。
本格的なのは頑張って作る人もいるかもしれないけど大変だし、初心者には無理。
>>869 こういう人をコ―ダーと呼ぶ。
最底辺の人だね。
アルゴリズムを暗記する必要は無いが考え方を勉強することは必要だ。
上手いやり方をその場で産み出せない人は結局どんな言語でもダメだね。
>>861 そりゃ、最悪マシン語を直接書けば何でも出来る。
制約の中でどこまで許容できるかだ。
VBAで枯れたアルゴリズムを自分でコーディングするのは全く上手いやり方ではない
仕事でVBA使うために枯れたアルゴリズムを自作したその瞬間は達成感が得られるかもしれないけど、その作業の客観的な価値とか自分の投入した労力に対する報酬とかいろいろ考えていくとアホらしくなるよね
ガントチャートなんか適当なSaaS契約すればいいだろ 月一万もしねえよ
データの範囲やパターンが限られてる場合は、汎用品より最適化した方がパフォーマンスが出せることも まあそこまでパフォーマンスの必要な作業はVBAでやることじゃないけど
>>874 日常的に必要となるようなアルゴリズムやデザインパターンなどはとっくに出尽くして枯れてるものなんだよ
なので「産み出す」とか言ってる時点で不勉強とわかる
キミはコーダー以下のアマチュアなんだろうけどそれにしたってもう少し勉強したほうがいいよ
既に存在するアルゴリズムを自分でコーディングする話と勘違いする所が痛い。 アルゴリズムなどと呼べない簡易なものから上手いやり方ってのはある。 そういうやり方を暗記してもダメで、その時は上手いやり方が有るんだなあと思っとくだけで良い。 ライブラリを組み合わせてある機能を作ったら、それらのライブラリを組み合わせるとは気付かなかったと言われることもある。 ライブラリを知ってただけじゃダメなんだね。 全く新しいものと言っても結局は既存の組み合わせなんで、その組み合わせを思いつくかどうかはいろんなアルゴリズムを見ておくことが重要。
>>877 例えば閑職に追いやられて暇な人が世の中には沢山いる
彼らはとにかく自分が頑張った証拠がほしいので簡単なことを無駄に大げさにしてから物事に取り組む習性がある
時間が有り余っていてかつ他者と失敗や成果を共有していないから組織としての効率は度外視で活動できるんだね
何がいいたいかというとどんな場合でも効率ばかりを優先するのが正解とは限らないということだね
あえて既製品を使わずに自作するというのも仕事がないときには必要なことなのかもしれない
>>880 パフォーマンスが必要ならパフォーマンスを出すための既製品を使うべきだろうね
身近な例だとRDBを使った検索とかだね
適切な道具を使う
道具に合わせて設計する
これがシステム開発に必要な姿勢だ
自作できる能力があるなら仕事はあるだろ そういうガチの無能はツールを自作するのではなく一日中人力VLOOKUPしてるよ
おまえらいつまで頭の悪さを競い合ってんねん… しかもID真っ赤にしてまで… おバカキャラの再ブレイク狙ってるんか知らんけど逆張りにもほどがあるやろw
そもそもなんで既成品を使うことがアルゴリズムの考え方を勉強してないことになってるんだ??? 自論広げたいがためにまた前提を妄想してるのか
>>882 大事なのはアルゴリズムを部品化して組み合わせて最小の労力で望む水準の成果を得る訓練をつむこと
日常レベルにない高度なアルゴリズムをブラックボックスとして使いこなす訓練をつむこと
そのためにアルゴリズムの知識は粒度が小さすぎてあまり役に立たない
こういった感覚はアルゴリズムではなくデザインパターンの学習などで磨かれるものだ
デザインパターンはいかん 柔軟な思考ができなくなる いっとき勉強したけど実務での実用に耐えるものはなかった
アルゴリズムは効率最優先って絶対的前提があって目的に特化しすぎてるから組み合わせや応用とは最悪に相性が悪い
で、その小さい糞アルゴリズムが凝縮して 糞遅くなる ID:A8WV5L+6 ← コイツなんかその典型
12時間かかってたのが 11時間30分になりました コレはコレでホントだったら凄い成果だ 30分も短縮できてるワケだからな しかし全体がクソすぎて この成果もゴミといっていい
>>891 俺はデザインパターンを始めて勉強した時はOOPってこんな使い方できるんだって世界観が広がったけどなー
発想力のブレイクスルー起きたよ
めちゃ柔軟になった
逆に感じる人も居るんだ
VBなんかつかう程度しか用がないようなアホが なににデザインパターンを適用するワケ
デザインパターンを駆使しないと構築できない EXCEL VBAによる大規模システム そんなもんあんのか
>>895 おすすめの本とか勉強法があったら教えてほしいな
まず低学歴は なにがボトルネックになることになるか その予見ができない まずそういった分析ができない その分析ができて さらに適切なアルゴリズムを選択することになる 低学歴知恵遅れには まずこの二つはできない
そして低学歴知恵遅れほど ほぼ効果がない最適化を行って 自己満足をしてる 問題はそこじゃない認識がない 最終的に認知の問題にまで辿りつく
サマータイムスレで相手にされないからってこんなとこまで出張して憂さ晴らししてる半角先生かわいい
オレがいかないから すたれてるやん オレがいったのは1スレ目だけだからな あれでもう十分周知できたからな サマータイムで騒いでんのは低学歴知恵遅れしかいないと で、きてほしいの? いかないけどな
>>892 >>895 アルゴリズムを勉強するという意味を勘違いする奴多数。
俺に言わせれば君のいうデザインパターンもアルゴリズムも一緒。
別にデザインパターンを勉強してもデザインパターンを使うわけじゃ無いだろ。
物事の考え方の話でね。
ライブラリばかり言ってデザインパターンやアルゴリズムを蔑ろにしてる奴なんてライブラリの組み合わせも碌に出来ない奴になるわけだ。
結局数学が出来る奴が強いというのも同じことでね。
低学歴ほど数学数学いうな 中学校や高校の数学できる程度の低学歴知恵遅れに多い 分かりやすい
あぼーんされてるのに必死にレスしてる半角先生かわいそう
オレのレスが気になってしょうがないから 読んでるだろオマエ 分かりやすい
>>904 そんなこと無い例がこの場にいるわけだが。
>>859 VBAでアルゴリズムっぽいライブラリ
VBAでデザパタっぽいライブラリ
それぞれ教えてよ
プロさん達いつになったらこの井戸端プログラム放談やめるの?
>>909 実に質問スレらしい良い質問だね、気に入った
>>903 だからさっきから言ってるけど
アルゴリズムは目的に特化しすぎ・具体的すぎて組み合わせや応用と相性が悪いんだって
逆にデザインパターンは問題を具体的しすぎずに様々な場面に応用・組み合わせる前提で考えて構成要素にも抽象的な部分を多く残している
同じだというならなぜ君や自分よりずっと優秀で経験も豊富な世界中のプログラマ達が二つの言葉を明確に使い分けているんだい?
君に言わせれば同じ物なのかもしれないがそう考えてるのはおそらく君だけだぜ?
自分定義でアルゴリズムやデザインパターンという言葉を使うな 意味がわからん
>>912 だから、それは勉強したアルゴリズムやデザインパターンを使うという観点の話だろ。
俺が言ってるのはそういう話じゃない。
上手いやり方を思いつく能力を鍛えるという話。
アルゴリズムもデザインパターンも先人が上手いやり方を模索して見つけて来たものだろ。
小学校時代、進学塾で鶴亀算なんかをやってた奴の中には中学で方程式の考え方に馴染めずに鶴亀算式のやり方で解こうとするようなのがいる。 しかし、しばらくすればやっぱりそいつはできる奴となる。 もっとも、小学校時代に習ってたものをそのまま適用しようというような勉強ばかりしてたようなのはダメなんだが。
>>914 だからアルゴリズムは特定の目的に特化しすぎてるからそういうのには向いてないんだって
最大値を求めるアルゴリズムを知ってても最大値を求めること以外にはほとんど応用できないし大して参考にもならん
発想力を鍛えるにはもとから発展性・応用性を考えてまとめられたデザインパターンの方がいい
デザインパターンを応用しようとする本末転倒なプロさん可愛いw
つまりデザインパターンなら 低学歴知恵遅れでも井戸端会議に参加しやすい いくらでもテキトーなことがいえる
処理手順と ソフトウェアの構造はまったく関係ないからな
バカでもペンキの色ぐらいなら選べる キレイにペンキを塗れなくてもな
すべてのアルゴリズムが特定の目的でしか使えないとかいってる時点で オツムの程度がしれてるからな
>>917 あきれるほど頭が固いというか、柔軟性からは程遠い奴だな。
最大値どころかアルゴリズムなんてなにひとつ知らないよとでも言わないと理解できないか?
アルゴリズムなんて知る必要無いだろ。
というのは言い過ぎなんだけどさ。
これでも俺が先に言ったことに何も矛盾して無いんだよ。
アルゴリズムなんて知る必要無いけど、アルゴリズムを勉強する必要は有るんだよ。
それは使うためじゃ無くて、問題を解決する方法を見つけるために。
新しいアルゴリズムを発明するために。
プログラマーってのは、大したことない、名前も無い、故に誰も知らないアルゴリズムやデザインパターンのようなものを発明しながらプログラミングしてるようなもんなんだね。
クライアント「使い捨てVBAツールなんだからアルゴリズムとかデザインパターンとか こ難しいことはいいからさ、ちゃんと納期までに仕上げてくれよな。」
「アルゴリズムは特定の目的に特化しすぎてる」 クソ雑魚の自分でもこれには首をかしげざるを得ない
>>924 おめーも随分頭かてえなあ
問題を解決する方法を見つけるためにはアルゴリズムじゃなくデザパタみたいな適切な粒度で抽象的なフレームがいいんだって
アルゴリズムは粒度が小さすぎて具体的すぎるので知識を違う場面で応用するには向かない
半導体物性をいくら学んでもパーツからパソコンを組み上げることはできねえの
>>847 プログラミングで飯を食ってるわけじゃなくて、しごとのなかでエクセルを使う時に利用してるぐらい
>>928 ダメだこりゃ。
固すぎる。
半導体物性?
何でPCに関係有るもん持ってきてるんだよ。
後が俺が言ってるのはもっと広い話だぞ。
そ詩を学ぶことはパソコンを組むのに必要だとでも言うべきか。
数学が出来る奴が強いと言うと本当に数学のお勉強が出来る奴と捉えるから始末におえない。
なんか段々おもしろくなってきたw 今後のID:A8WV5L+6から目が離せんですよこれw
>>927 特定の目的に特化してるから効率的に処理できんだよ
そんなこともわからんのか?
アルゴリズムってのは1つの目的を最大限実行効率よく処理するために考えられたものだ
それらを組み上げてより実用的な問題を解決したりメンテナンスしやすくしようってのとは全く別の次元の問題だ
バカはその特定の目的が あちこちの大きな目的を実現するために使われることがわかってない さすが低学歴知恵遅れとしかいいようがない
だいたい、知識を違う場面で応用とか言ってるあたりから勘違いしてるのがよく分かる。 昔から学校の先生でも基礎と応用を勘違いしてるのが多いんだ。 逆なんだよ。 応用と呼んでるのが基礎で、基礎と呼んでいるのは応用じゃ無いけど別のものだ。 受験でも難問と呼ばれるのが本当は基礎カを問うものなの。 教わったことの無いものをその場で搾り出す能力というのはその人間の基本的な能力なんだ。
「アルゴリズムは特定の目的に特化しすぎてる」 ↑ 誰かこれが理解できる人いる??? オレにはまったく理解できないね オレにはまったく理解できないね オレにはまったく理解できないね
>>932 それはコ―ダー君にまかせる。
そういうのは誰でもできるから。
>>938 俺は理解できるできないの前に考えてもいない。
だってそれ以前に勘違いしてるんだもの。
>>939 コーダーにまかせてお前はなにもしなくていい
変なもの作りそうだしな
ドーナッツとか
>>939 バカは黙っとけ今はID:A8WV5L+6のターンや
おもろいとこなのに頓珍漢なつっこみすんなカスw
他で雑談する相手のいない淋しいプログラマの集まりスレ ここはプログラ「ム」板であってプログラマー板はこの上にあるんだから、そこに逝けよ 淋しいプログラマ諸君
いくら正しい見解を述べて素敵な人格を持っていても半角カタカナで台なし いくら正しい見解を述べていてもね
プログラマって難しいこと考えてるんだな 給料っていくらぐらいなの?
>>941 だって君のようなコーダー君って給料安いし、仕事もつまらんだろ。
>>946 わりと良い給料貰ってるよ。
やってることも殆ど趣味だしね。
ここVBAの質問スレですよね? なぜ本職の方がイキってるんですか? いや、マジで
いい質問だな そういう質問も可能だよ、質問スレだし
しかも頭悪いからな 本職というの微妙な低学歴底辺ドカタの部類 オレみたいなホンモノのプロフェッショナルじゃないからな
別スレでボコボコにされて逃げ出してきた先でイキっちゃう半角さんかわいい
半角さんてサマータイムのスレでボコボコにされた人?
低学歴知恵遅れが勝ったつもりでいんのか パーフェクトゲームでオレが勝ってるのに
半角先生は承認欲求が強いからどんな形であれ皆に覚えててもらえて喜んでそう
一般的には馬鹿だけど、実際に
>>961 がVBA程度も独学で習得できない池沼レベルの馬鹿なんだったら仕方ないだろう
同じ馬鹿なら努力する馬鹿の方がマシだぞ
個人的にはそこまでの価値はないと思う、状況にもよるが
というより、スクールに通わないとVBA使えるようにならないようなアレな人がVBAを無理に習得したとして、 それをどれほど役に立てられるだろうか?ということだな VLOOKUPとかINDEXとかは使えるの?
>>964 >VLOOKUPとかINDEXとかは使えるの?
さすがに馬鹿にし杉だろw
仕事で社外の人が作ったマクロを使うことがあるのね それが便利なんよ んで、こんなん作れたら仕事めっちゃ便利になるなと 事務職なんだけど俺のいるチームにはマクロ作れる人がいないので勉強してみようかと思ってね
んで、独学よりも分からなかったら人に聞けるスクールの方がいいかなと
ネットに落ちてる程度の知識しか教えてくれないところにお金払って損した、と後で後悔する可能性は高いと思うよ、真面目な話
ちゃんとプログラミングとして基礎から教えてくれるなら価値はあるんじゃない? チュートリアルをこなすだけなら金の無駄
したらば体験授業を受けてみて判断するかな そんなんがあんのか知らんが スクールに通うもう一つの利点は金を払うことによって半強制的に通わざるを得ない状況にするってのがある 俺ほどダメな奴はいないので独学だと挫折する可能性が大いにある… でも、PC持ってカフェにでも行けばいいのか いや、勉強せず5ちゃんやるだろうな…
>>967 お金払って作るの頼んだ方が楽だし安いよ
>>973 いや割とマジでプログラミングなんかより他のことに時間を割いた方がいいよ
筋トレでも資産運用でも子供と遊ぶでもした方がマシ
部署内にVBAスキルを持った人間がいないということは、君がVBAを習得したりコーディングしたりしたときの苦労の程度を理解してきちんと評価できる人がいないということでしょ そういう環境にいるなら、凡そ仕事でしか使わないであろうVBAにお金と時間をかけるのは本当に価値があることなのかどうか、真剣に考えた方がいいと思うんだよな
ネット de VB() VBAスキル() VBA苦労() オツムの程度相応のレスといっていい インターネッツでなんでもすべてが分かると思ってるのは コレはクソニートに多い オレを評価してくれないのは周囲がワルイ コレもクソニートに多い オレを評価できるヤツが周囲にいない コレもクソニートに多い まさに典型的なニート脳 ID:jqHbfRUCはクソニートと断定できる
>>975 VBAのスキルを持った社員がチームにいないのであって部署にはいるよ
>>976 割と真面目な話、君しか触れないマクロに皆がただ乗りして、君だけがメンテ等のために余計な残業や責任を負担させられるっていうオチになりかねないと思う
>>979 そんなことはないよ
うち某大手企業の特例子会社だから今のご時世残業はさせてもらえない
困った時は本社のIT担当にツケが行くだけかな
>>980 だったら最初からその「本社のIT担当」に作らせろよ w
とある部署にWinsckコントロール付きのVBAを作ってあげた ↓ 意外にも使う人が増えたので、Winsck部分をWindows APIにしてocxを配らなくてよくしてあげた ↓ 評判がよくて予算がとれ、VB+Spreadでシステム化した 俺が尊敬するのは、APIで暫定策を持ってきたSIerのオッサンだわ
>>980 本社のIT担当にとっては本当に迷惑だから、そういう魂胆ならば最初から君はVBAを触らない方がいいよ
属人化マクロを正式にシステム化できるかどうかは、作った人が思いのほかシステムセンスがあるときだけだね 基本的に迷惑な俺様マクロは部署内で細々と引き継がれる程度のツールだし、むしろマクロの本懐だろう
はっきりいってな マクロ程度なんか少しやるきあればバカでもチョンでもできる プログラムを書くだけなら低学歴知恵遅れですらできる この板をみれば分かるとおりな
>>987 それは正しいと思う
電車の運行や貨物船の航行は業者に任せるのが当然だが、いまのIT活用は
バイクや自家用車の運転すら他人に任せようとしてるのに例えられる
そういやここ、「初心者のための定番サイト」みたいなテンプレがないんだな。 改めて気付いた。
>>971 なんかVBAマクロを作るマンガみたいなのがあった気がする。
個人的には「自分にしか理解できない」みたいなマクロは作るべきではないと思う。
ので、仕事でどうしても使うなら、よほど効率の悪い業務を改善できる(かつ自分しか使わない)時とか、
システムの不具合・障害その他の問題でやむなく使わざるを得ない(かつ自分しか使わないしすぐ使い捨てる)時とか、
>>983 のように最終的にシステムに組み込むところまで持って行ける技能と情熱があるとか、
そういう時に限った方が良いような気はする。
とは言え、自分も作ったヤツが異動後もその職場の標準ツールみたく運用されてしまってるので、人のことは言えないけど。
>>971-976 プログラミングはかなり実用的なスキルだと思うけどな
それより実用的なスキルは
自動車免許と英語くらいしか思いつかない
マクロ作成者のスキルは、Rangeオブジェクトの番地の有無でわかるよね A1とかを文字として定数、編集していたらアウト、名前つき範囲でoffsetで動き回っていたら本職
Range("A1")だけは認める派 ※1シート1テーブルで且つ1行目からテーブルが始まる場合に限る
>>992 人に頼めることを自分でやるのは愚かだよ
人に頼めないことだけやるてつまり食って寝てればいいのか
そうだよ 真面目な人ほど損する 丸投げしてサボっても評価は同じ
>>993 でも Range("範囲名") としてたらイマイチ
このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 18日 4時間 17分 9秒
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
read.cgi ver 07.7.25 2025/07/21 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20250805200359ncaID:M7z4l4oiのレス一覧: 一晩(実質2日だが)待ったがドーナツ先生はまだ
>>79 を解けないのか?
>>374 もはや解いたも同然と言っても過言ではない
>>374 あの、ところでテーブルレイアウトってどういう意味でしょうか?
テーブルレイアウトがこの問題の一番重要なところですよね
元々が「イミディエイトウィンドウで」なので Excelブックのシートに展開することを指しているんだろうとエスパー
そもそも、MS謹製じゃない誰かの作ったライブラリ使って1行で書いて自慢するというんじゃね・・・
それって
>>263 や
>>275 の書いたコードを呼び出す1行のコードでも良いってこと?
>>383 無理矢理こじつけて面白いとでも思ってる?
先のコードを見れば、MSのdllしか使ってないのはすぐ分かると思うのだが。
つまり、無理矢理なのは明らか。
それともそんなことも分からない程スキルが無いのかな?
>>384 お前が
>>263 のコードすら読めてないってのはわかった
>>386 ???
先のコードって
>>263 のコードのことだとでも思ってる?
何で
>>263 のコードがここで出てくるのか分からん。
標準でいろんな機能が備わってるか、という基準でならVBAのボロ負け ってことは皆さん承知でいいんだよね?
そらそやろ 飛行機は空を飛ぶってことに合意とってるようなもんや
喫煙所でタバコは体に悪いよねと合意取るようなもんや 酒、タバコ、VBA
>>387 レベルが低いとそんなこともわからないのかw
>>388 それ、 VBAが勝てる言語ってあるのか?
ケンタッキーフライドチキンで鶏肉が不味いと言ってるようなもんだぞ
>>309 >俺が思うに.netが使えれば、もっと完成度が高く高機能なものを
>簡単に作ることが出来るはずだ。
>なんでこういうのを比較に出さないのかということだ。
ここを読むと技術力の低さが露呈していることがハッキリする
ドーナツアプリを見たがこの程度ではこれを.NETでやっても大きく差はつかない
せいぜい、運が良ければAPIじゃなくてマネージドな部品が用意されてるかもね、程度
>>79 はみごとだ
標準のコレクションやライブラリの貧弱さ
ラムダ式の未サポートなどモダンな言語機能の欠如など
VBAの弱点をしっかり捉えた題材と言える
実際に勇気あるVBAerがコードを晒したがPSで書いた時とは全く異なる長ったらしい読みにくいコードだった
題材が的確だから結果にも大きな差がついた
オマケにVBAとは違って強力なライブラリや言語機能を備えたRubyがPSと同じく短くエレガントなコードになったことがこの事実をさらに後押ししている
>>400 最後にテーブルにするというExcelに寄り添いつつも実用性のある操作を加えることで
決してVBAだけに不利な条件にもしないという隙の無さもポイント高い
(ところでPSのやつ最後テーブルになってるようには見えないんじゃが...)
ルビーは実行環境インスコせなあかんし 池沼シェルはモジュールをインターネッツから インスコせなあかん、それがネックやな
>>401 そこに気づくとは
パワシェルは要件を満たしてないオナヌーコードに成り下がってる
簡単さにこだわる余り目的を見失ってる
要件を満たして正確に動作すること これが第一、その上で簡単に書けたら良いよねが来る 簡単に書けました、ただし要件は満たしませんでは駄目なのさ
>>401 と思ったけど-Nowオプション付けるとテーブル(というかフィルター?)になるのか
早とちりだった
-TableNameでテーブルになるのかな?
>>400 はあ、どうしてケチをつける割に人の話を聞かない奴ばかりなんだ?
あれをそのままで.netの方が良いなんて言って無いんだよ。
分かりやすいのは他言語のコードを見ても全く、使おうとは思わない点だ。 VBAで何の問題も無いとしか思えない。 所詮、そんなコードだということ。
その点ドーナツは凄いよな 俺も今やってる仕事でVBAでドーナツ使いたいわ そんな魅力がドーナツのコードにはある
>>412 話が読めないバカが混じってるな。
日本語が弱いのかな?
>>413 日本語読めない子扱いされてるのがそんなに悔しいの??
わざわざ日本語弱いとか煽ってくるとかwww
人間自分が言われて嫌なことを悪口に使うって聞いたことない??
>>413 ねえいつもうるさいくせに何で黙っちゃったの
>>414 根拠も何も無い、論理的に間違っていてもまともに反論も出来ない、そういう奴だから日本語が弱いと言われても仕方がないだろう。
お前は何ーつ反論していない。
反論出来ないということだろう。
>>415 今、見たからだが。
お前みたいに、このスレに齧り付いてるわけじゃ無い。
>>416 おっそうだな
それ鏡に向かって言ってごらん?
それだけでかなり日本語能力が改善されると思うよ?
>>418 一切反論が出来ないようだw
論理的なものが何も無い。
バカが1人だけだとほっとかれて終わるけど 2人で言い合うから終わらない
例えば無数にあるエクセルファイルからそれぞれ読み取ってデータを集計する際、どう処理するのがベター? 速度気にするならデータベース?
>>422 無数にあるエクセルファイルって、データの形式は統一されてるの?
>>423 形式は統一されてるとして同じ作業を繰り返えさせるのはどうするのがベターなのかなって。
>>424 やっぱ普通に開いて閉じるの繰り返しか。
>>425 形式が統一されてるならSQL
{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}
そもそも、その内容だけを見た時にVBAでやる必要有るのか?とも思う。 好きなの使え。 それに、その程度のことでどれがベターとか考えるか? コード見て、こりゃダメだと思うようなの書いて無い限りどんなのでも良いだろ。 スピード優先な処理なのに1つずつセルに入れてるようなのはダメだが、処理に時間がかかってダメだという状況じゃなかったら別にどうでも良いし。
Ruby なら、こういう感じで、フォルダ以下を再帰的に処理できる Dir.glob('C:/Users/Owner/Documents/Ruby/test/**/*.txt') do |file| next if File.directory? file # ファイルだけを処理する # 処理 end
>>428 何でVBAじゃないとダメなの?
ちゃんと答えられる?
>>430 どこがセンス無いんだ?
全然説明が無い。
Excel は環境構築がいらない。 Excelが実行環境だから だから、Excelエンジニア(ノンプログラマー)は、Excelを使う ところが、そこへ本格的なプログラミングを頼む者が現れるが、 プログラミング技術がないから、Excelで作ろうとする 案件と使う技術の不一致!
仮想マシンでwindowsからセットアップしなきゃならん インストールしてからもマクロ許可の設定しなきゃだし 手間も金もかかる
パソコンとはWindowsとMicrosoft Officeが動くもののことである WindowsとMicrosoft Officeが動かないマシンなどこの世には存在しない してはならない
クリエイティブなエンジニアはみーんなマックとハイスペLinux
>>437 根本的に勘違いしてる。
別にOfficeが動かないマシンが有っても構わない。
けど、ここはExcelVBAのスレだからExcelが動く環境の人が質問する所だ。
Officeが動かない人がここで何をするんだ?
Officeの入ってない管理者用PCでリモートPCのOfficeをいじるときにCOM経由でVBAのコードを動かすこととかあるよね
>>440 Officeが動かないマシンなどありません
異端者はこのスレから立ち去りなさい
>>441 う~ん、それこそVBAじゃ無くても良いような気がする。
既に出来てるコードを動かすという点で新たに組む必要が無いという理由が、あるいは他にも事情があるのかもしれないけど。
でも、そもそもExcel入って無くてインスタンス作れるか?
>>441 無いだろ
リモート側のExcelどうやって起動するんだよ…
RubyバカはRubyのスレに逝けよ。Rubyのスレでは俺はRubyが使えるんだエラいんだって自慢できないからここに いすわってんのか?
>>445 インスタンスはリモート側で作らせればいい
管理者側はリモート側のプロセスをモニターするだけ
Office は高いから、入れていない Ruby で処理して、VSCode のExcel Viewer で見たりする
csv開いて取り込む方法だけでも色々あるのね openfileで開いて1行ずつ読み込んで、カンマ区切りでセルごとに格納するって方法もあれば、csvファイルをエクセルとして開いて配列に格納する方法もあった
高いからエクセル買えない奴多いんだな 中国人や韓国人ですかね?
こんなスレまだあるんだな しかも結構人多いのに驚いたw VBAっていうかExcelって需要あるんだね でも仕事でやれって言われたらストレス溜まりそうだな 基本的にGUIが貧弱なVB6だよね 10年ぐらい前に必要に迫られてちょっとだけ触ったけど C#に慣れた身には死ぬほど不便に感じたわ
買えないならLibreOfficeがいいね Excelとあまり遜色ない BASICやpythonもサポートされてる 金出してでもネームバリューが欲しいならエクセル
>>455 このくらいの意味もわからんとはかわいそうなやつだな
何も始まらない ID:w2kFCGmb が被害妄想が激しいお馬鹿さんなだけ
C# スレでフルボッコでもされた憂さ晴らしに来たらこっちでもハブられてるって話だろ w
煽られてムキになっちゃってるVBAerって普段からC#erに嫉妬してそう
{ } っていう表記を見るだけでイライラする人とかいそうだよね
まあわざわざこんなスレにまで来る時点でどっちが嫉妬してるんだよ って話だわな w
昔はMSSoapとかいう便利なSoapクライアントが標準で入ってたと思うんだがwin7にはないのか? いまどきのVBAだとどうやって標準だけでsoap serverに接続すんの?
そもそもVBAの質問スレなのにVBAを叩く人が多いのは何でなの?そのお気に入りの言語のスレでVBAを叩けば良いのでは?
VBA使いに何故か頭のおかしい人がいっぱいいるから 頭のおかしい人は叩かれやすいから
>>469 統計とったん?
頭がおかしいのはもしかして・・・
>>470 取ったよ
有意にVBAerは頭がおかしい
>>467 VBに取り憑かれなければもっと成果でていたかもしれないねもったいない
>>471 統計取る人の方が頭おかしいんじゃないかって
言おうと思ってたの
なんで・・・
昔のVB6とVBAの互換性くらいの頃が良かったな .NETの非接続型のデータセットもVBAでサポートしてほしい
vbaて最近やと難しい言語に入るからなw ヤワな言語かじってプログラミング出来ると勘違いしとるバカが 「ルビーを使いこなせるボクが手も足も出ないvbaなんかクソに決まっとる」 言うて駄々こねとるんも無理ないわなw
セルを参照するrangeの仕様を見直せ たとえばA1と指定すればA1だが、1Aと指定しても列がAで、行が1だということが分かるだろ。そのくらい内部で読み替えせないか? 仕様として、本当に、おかしい
逆だった。要は、A1でも1Aでも同じことだろと言いたかった
通常トークンの先頭が数字なら数値のリテラルと解釈する 先頭が数字を許す数値以外のトークンは通常ない だれもいちいち面倒なことはやらない わかった?
>>486 ←トークン言ってみたかったプロさんwwwww
昔はMSSoapとかいう便利なSoapクライアントが標準で入ってたと思うんだがwin7にはないのか? いまどきのVBAだとどうやって標準だけでsoap serverに接続すんの?
オレはプロフェッショナルだからな クソニートや低学歴知恵遅れがでる幕はない
>>490 あいにくプライベートな質問はお断わりしとるもんでw
>>486 >だれもいちいち面倒なことはやらない
トークンもリテラルも理解できないが、1行で改修できるようなもんだろ
それを面倒とはいかに。
関数では列行指定なのにCells()だと行列指定で数字のみなのは変といえば変
=E1+1 ← セーフ =1E1+1 ← セーフ =1E+1 ← セーフ コレ どうしてくれんの?
>>494 ←アドレスと数式の違いがわからないプロさんwwwww
1E+1 コレ普通に指数表記の数値リテラルだからな まともな教育を受けてない低学歴知恵遅れには縁がない どんな高級言語でも普通にほとんどサポートされてる
=E1+1 =1E1+1 =1E+1 低学歴知恵遅れは一度コレをエクセルのセルに入力してみればいい 低学歴知恵遅れではきっとなんでそんなことになるのか理解できない 意味が分かってないっからな
>>497 ←もはや色んな事が逸脱しすぎてもうとるプロさんwwwwww
低学歴知恵遅れは自分がいかに低学歴知恵遅れで 自分が人間未満のゴミクズ人間という自覚がない そして自己評価だけは高い こういうのは 低学歴知恵遅れのクソニート、底辺ITドカタに多い
>>500 ←低学歴のクソニートと底辺TIドカタを兼ねそなえてるプロさんwwwwwwwww
バカはバカの自覚がないからな どんだけバカで愚かな人間かという自覚すらない バカは自分がバカで愚かな人間ということに気づくことはできない そして、一生、その自覚がないまま バカでゴミクズな人間のまま終わる わかった?
>>503 ←人並みに悔しい感情を持ちあわせた奇特なプロさんwwwwww
>>505 ←突然自らの半生を語りだしたプロさんwwwwwwwwww
この板は気の毒なぐらい頭悪いのしかいないから しょうがないともいえる
>>507 ←気の毒なぐらい頭悪いプロさんwwwwしょうがないwwwwwwwww
よくこんなオツムで リアルの世界で生きていけると思うわ 2ちゃんねる以外では到底通用しない 結論としてクソニートと断定できる
>>509 ←いまだに2ちゃんねるの世界で生きとるプロさんwwwwwwww
すいませんここってVBA質問スレですよね? この質問に答えられる人は居ないのですか? 昔はMSSoapとかいう便利なSoapクライアントが標準で入ってたと思うんだがwin7にはないのか? いまどきのVBAだとどうやって標準だけでsoap serverに接続すんの?
soap vbaでぐぐればいくらでもサンプル出てくるじゃん、MSXML利用だろ
>>513 めんどくさすぎなんですけど?
mssoapのmssoapinitと同じくwsdlの解析を1行でできなきゃ使い物にならないですよ
めんどくさいとか言ってないで自分でラッパー作ればいいだろ 一回苦しめば後は楽だよ
>>515 汎用ラッパーを作るのは最悪級の車輪の再発明なので却下
サービスごとにラッパーを書くのは工数かかるから却下
既存の資産でなんとかしたい
既存の資産って言ってるけど当のMSが積極的なサポートをやめてるんだし、envelopeを投げるリクエストメソッドとかは基本的にユーザー側で作ってねってことだろ その能力がないとか、その労力を惜しまなければならない状況なら、所詮は今まで使ってたコードは環境依存の資産でしかなかったってことだろ
cpanとかNuGetみたいなパッケージ管理システム/リポジトリが無いのは本当に欠陥だよな
たぶんMSXMLのラッパーなんか作ってる人いっぱいいるんだろうけど、それを公開する場所も共有する方法もない
そのせいで車輪の再発明が当たり前な文化だし、しまいには俺も苦労したからお前も苦労しろの老害思想
ほんと吐き気がする
というわけで
>>512 への回答としては苦労してラッパー作りましょう
パッケージ管理システムならC#とかで自分で作れば良いじゃん
>>512 >昔はMSSoapとかいう便利なSoapクライアントが標準で入ってた
なら標準で入ってた環境で使えば?
新規になんか作るより運用でカバーできるならそっちの方がずっと楽だよ
VBAにパッケージマネージャなんかあったらマルウェアの温床だろう すぐにVBAGet(仮称)自体がウィルスとしてセキュリティソフトの駆除対象になって終わりだよ
>>525 その辺はリポジトリーを管理する組織、いわばリポジトラーが安全性を担保するから問題ないかとー
>>526 NuGetなどの公開リポジトリは一般に、作者の認証は行うけどそれだけだぞ
作者自身が意図して(or作者のPCのウィルス感染などで)悪意あるコードを仕込むのを防ぐことはできない
>>527 NuGetはマルウェアの温床になってるの?
>>528 つい最近NPMのパッケージにマルウェアが仕込まれて大騒ぎになったの知らないの?
公開・非公開は関係ない 人間は失敗するし産業スパイは金になるところにはどこにでもいる だからソースが見えてるものが安心なんだ ソースが見えてれば世界中の人たちが検証できるからね
>>530 知らない
VBA以外の環境でもパッケージマネージャがマルウェアの温床になるなら
言語の問題ではなくてパッケージマネージャの問題と言える
VBAだからといってパッケージマネージャの導入が悪くなるわけではない
大騒ぎになったということはマルウェアが仕込まれたら困るユーザが
たくさんいたってこと、そのユーザの力を借りれば良い
パッケージマネージャでユーザレビューを提供して
このパッケージは怪しい動きしてるってことが発覚したら
ユーザによってパッケージの評価を下げられるようにすれば
ある程度被害を抑えられる、あまりに酷いようならその開発者を
ブラックリストに入れることで対処できるってことやな
>>535 おいおまえ、パッケージマネージャを作ってくれ
>>533 .NETとVBAしゃ開発者のスキルが違うし、事故があったときの被害規模が段違いでしょ
VBAだとセキュリティ制御も困難だし
プロさん、vbaにパッケージとゆう概念がない事を知らないwwwww
>>537 スキルなんて大して変わらんだろ、被害規模も変わらんだろ
できることに大差はない、セキュリティは問題無い、やろう
君がパッケージマネージャ開発しよう、そしてMicrosoftに買収してもらおう
その価値を考えるなら1億円くらいが妥当、半分は開発を指揮して主導した
僕の手柄だから僕がもらう、発案者として僕にはその権利がある
なんや訳わからんと横車を押してみるプロさんwwww
詰みに気がついた様子のプロさんwなおここからもう一度横車を押しますwwwwwww
何絶句しとんねん、黙ったらダメ なんでもええやんけ、どんぶらこっこ、どんぶらこっこwwwww でええんや、自分の取り柄は末尾にwをつけることやろ それさえ守ってればなんでもええんや
必要な人にだけdll配って参照設定するんじゃね? それでdllない端末は実行できずにエラーになる その程度だし、その気軽さがVBAの存在意義だろ?
この人のセンスを見習って欲しいね、これは脱帽せざるを得ない 547+1 :デフォルトの名無しさん [↓] :2018/09/01(土) 22:25:23.33 ID:zuN21Q9R (1/2) キチガイの巣になってて草 551+1 :デフォルトの名無しさん [↓] :2018/09/01(土) 22:34:22.57 ID:zuN21Q9R (2/2) 自分がキチガイじゃないと思ってるキチガイいて草
アマチュアの人達はchocolateyも知らんのかね あれは特定の言語に偏ったものじゃないからVBAのパッケージ管理にも使えるぞ だから問題は管理システムがないことじゃないんだ VBAには価値あるパッケージを作れる、作りたがるプロフェッショナルが少ないから管理システムがあっても意味がないんだ
>>559 これを登録してもくれるか? 有用なパッケージだ SUB SORT(A) DIM I, J, T FOR I = 1 TO UBOUND(A) FOR J = 1 TO UBOUND(A) IF A(J - 1) > A(J) THEN T = A(I) A(I) = A(J) A(J) = T END IF NEXT NEXT END SUB レス:1-200 201-400 401-600 601-800 801-1000 ALL
このスレへの固定リンク: http://5chb.net/r/tech/1534976724/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。 TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「Excel VBA 質問スレ Part56 ->画像>3枚 」 を見た人も見ています:・【バーチャル】hololive質枠🍐スレ#118956【youtuber】 ・【eAccess】低価格ADSL総合スレPart36【YBB】 ・【バーチャルYouTuber】.LIVEアイドル部ファンスレ#5238【アップランド】 ・生活保護のCWだけど質問ある?part.513 ・【PS4/XB1/Switch】APEX LEGENDS エーペックスレジェンズ初心者スレPart97【転載禁止】 ・質問スレ ・ガイドライン雑談・質問スレッド 其の十六 ・Clavia Nord総合スレ Part4 | Handmade in Sweden ・ヘアワックス・スタイリング総合スレ part151 ・沖縄のコロナ感染、世界最悪レベル 10万人当たり256.09人 マレーシアの361・1人、イギリスの275・9人の次に [孤高の旅人★] ・質問スレ ・質問スレ ・質問スレ ・ソルトくんのアクスタ12枚買ったけど質問ある? ・東海テレビアナウンサー総合スレ 5 ・ロレックスってウンコ品質で過大評価されてるよな20 ・【F.ate/EXTRA】女主人公(ザ.ビ子)厨ヲチスレ29 ・【HONDA】5代目ステップワゴン Part70【STEPWGN】 ・【5ch.Twitter】害悪特撮オタクスレ ・【G20/21】BMW 3series オーナー限定スレ part7 ・【ゲーム】任天堂、「スイッチ」出荷再開 約1週間ぶり、新型コロナ影響で供給追いつかず ・【玉川徹】安倍首相の健康問題を田崎史郎氏に質問「総理を絶対、私は続けたい、これができていないから続けたいんだっていうものは何?」 [爆笑ゴリラ★] ・【配信】U-NEXTにも海外クレカ規制の波「その他♡」ジャンル作品のVisa/Master決済を一時停止…今後はJCBカードか他決済手段で ★2 [樽悶★] ・【KUN】KUN50人クラフト総合スレ【参加型】part45 ・原神アフィ対策議論スレ Part1 ・質問スレ5 ・IDにHIVかAIDSがでたらエイズが治るスレ Part27 ・【PS5】PlayStation5 総合スレ ★6 ・レイシストのコミュニティ見つけたんやけど ・【コロナウイルス】原因不明の「新型肺炎」、日本で初確認 神奈川在住の中国人男性に陽性反応 中国・武漢渡航歴 既に退院 ★6 ・【イエス】■■YESグループ 札幌■■【Part49】 ©bbspink.com ・【日産】セレナ(C27) PART42【SERENA】ワッチョイ有 ・初心者優先デジタル一眼質問・購入相談室 123 ・【Switch】Splatoon3/スプラトゥーン3 356杯目 ・【VM】 ORACLE VM VirtualBox Part7 ・マイクロソフト、コーエーに買収提案か、エクストリームビーチバレーや信長の野望がxbox独占になる恐れ ・質問スレ ・2020年12球団ドラフトスレ part72 ・【FFRK】FINAL FANTASY Record Keeper Lv264 ・【PSO2NGS】ファンタシースターオンライン2ニュージェネシス Part1723 ・【超絶悲報】覇権スマホ・iPhone13さん 画面上部に隙間がある問題が多数指摘される😨 ・iOS 10.xを語るスレ Part38 ・【Rank101↑】グランブルーファンタジー初級者スレ2326 ・独身男性板自治スレッド 実質3スレ目 ・アニメ『PSYCHO-PASS サイコパス』放送10周年プロジェクトが始動! [鳥獣戯画★] ・オリコンの「好きなアーティスト」で女性アイドルが異常事態・・・モー娘、ももクロ、AKB、ベビメタはすべて圏外! ・【芸能】 大作ドラマ「ミスターサンシャイン」、親日派を強調し加害者である日帝の責任が抜けた危険な設定[07/24] ・【コロナ】神奈川県のライブハウス7月4日 コロナ陽性なのにライブ出演、ラッパーで暴力団組員の男…覚醒剤と大麻所持容疑で逮捕 [どこさ★] ・GITADORA Matixx総合スレ11【ギタドラ】 ・センター55%で立命合格したけど質問ある? ・NET BUZZ NHKスペシャル 憲法と日本人~1949-64知られざる攻防 ・英語質問 ・iOS 14.xを語るスレ Part7 ・【Misfit】Fossilスマートウォッチ総合【SKAGEN】3 ・【朝鮮学校ヘイト問題】「日本社会が怖い」朝鮮学校関係者、判決に強い不安 在特会元幹部の控訴棄却も「公益目的」否定せず [クロ★] ・【TOYOTA】ヤリスクロス Part58【YARIS CROSS】 ・指原莉乃、 困惑した元カレの服装「デートでテンガロンハット被ってきて…怖いですよね」 [muffin★] ・【芸能】3人脱退するキンプリ、『Mステ』5人そろっての生出演に「あー、今日も世界で一番5人が大好き」の声 [jinjin★] ・Mozilla Firefox Part375 ・【PS4/PS5】 アーケードアーカイブス総合 136コイン目 ・質問 ・質問 ・質問です ・質問 ・質問 ・質問です
07:03:59 up 110 days, 8:02, 0 users, load average: 21.27, 30.41, 35.96
in 1.2627689838409 sec
@0.36799478530884@0b7 on 080520