◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:Excel VBA 質問スレ Part71 YouTube動画>3本 ->画像>7枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1621914481/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part70
http://2chb.net/r/tech/1616072923/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
>紙の表を目で追いながら画面を見ずにどんどん入力するとか普通にある 下手に補完機能とか発動するとうざいよな
画像のような処理をするコードを書きたいのですが・・・
整理番号に対してアルファベットがランダムに振られており、それをまとめるというようなコードです。
ただし、まとめたい整理番号は行が飛び飛びになっており固定されております。
forやifなどを少しかじっただけのため、頑張ってみましたが全くできませんでした。
何卒宜しくお願いいたします。
>>5 ですがウンコしてたら閃いてできました。でももしどなたか書いてくださってたら、参考のために見せていただけると嬉しいです。
>>8 整理番号に対してくっついているアルファベットを、重複削除して横向きに整頓したという感じです。
ID:mkbiTVsAdはとにかく繊維質と水分を十分に摂って山ほどウンコしろ そうすればこのスレを必要とする事も無くなるだろ
入力データは違うけど、Ruby で作ってみた require 'csv' tmp_hash = { } input_ary = CSV.read( "input.csv" ) # 2次元配列 input_ary.each do | row | # 1行ずつ処理する if tmp_hash.has_key? row[ 0 ] # 既に、その数字が存在すれば # 文字列が存在しない時だけ、その文字列を追加する tmp_hash[ row[ 0 ] ][ row[ 1 ] ] = true unless tmp_hash[ row[ 0 ] ].has_key? row[ 1 ] else tmp_hash[ row[ 0 ] ] = { row[ 1 ] => true } end end result_ary = tmp_hash.map do |num, hash| ary = hash.map { |str, b_true| str } [ num, *ary ] # 配列展開 end # p result_ary # 2次元配列 # [["1", "A"], ["2", "B", "C"], ["3", "X"]] csv_str = result_ary.map( &:to_csv ).join # 2次元配列を、CSV 文字列に変換する print csv_str 出力 1,A 2,B,C 3,X
>>9 1と3は、整理前と整理後で同じ行にあるけど、2と4が上に移動してる理由がわからん
移動量も違うし
条件は全部文章で書いて
>>5 Dictioraryを使わずにデータを1列目〜2列目、出力先を4列目以降であると仮定する
配列 = Range(Cells(出力先の1番上の行,4),Cells(出力先の1番下の行,4))
For i = LBound(配列,1) to UBound(配列,1)
For j = データの一番上の行 to データの一番下の行
If Cells(j,1).Value = 配列(i,LBound(配列,2) Then
If 配列(i,UBound(配列,2) <>″″ Then
ReDim Preserve 配列(LBound(配列,1) to UBound(配列,1),LBound(配列,2) to UBound(配列,2)+1)
End If
For k = LBound(配列,2) to UBound(配列,2)
If 配列(i,k) = Cells(j,1),Value Then
Exit For
Else If 配列(i,k) = ″″ Then
配列(i,k) = Cells(j,1),Value
End If
Next
Next
Next
ってやって出力するとか?
思いつきで適当にやったから動かなかったらゴメンね
>>12 移動後の整理番号の位置は決まっているだけ という話なのですが... というかそれは書いてあるのですが
>>14 おお ありがとうございます
参考にさせていただきます
>>11 このバカはなんですか?
>>17 添付画像は簡略化してあるだけなので...
本当に画像みたいなデータしかないんだったらいいかもしれないですが...
>>11 頭が悪いの?
大丈夫?
日常生活は遅れてる?
>>19 聞いても無駄
自覚できてないからずっとこんなこと続けてるんだろ
A列がKey、B列がItemが入っていたとして、一括でDictionaryに代入する方法はありますか 今はForで処理していますが、 For r = 1 To 10000 dic.Add Cells(r, 1), Cells(r, 2) Next r だと読み込みに時間がかかり、配列のほうが早いくらいです
配列を経由してDicに入れると多少は速くなると思う 確認はしてない Sub Macro1() Dim Dic As Object Set Dic = CreateObject("Scripting.Dictionary") Dim aa() aa = Range("A1:B10000") For r = 1 To 10000 Dic.Add aa(r, 1), aa(r, 2) Next End Sub
そもそもDictionaryにRange型も入れられるんじゃないっけ? だから「配列の方が速い」という使い方ならCellsの後にValue付けなきゃいかんのでは
>>21 スピードを求めているの?
ならシートにSQL投げた方が速い場合もあるよ
格納場所はRecordsetになるけど
>>24 それだと重複時に例外が出るメリットが生かせないのでは
配列でいいって言ってるから保証出来てるのかも知れないが
(最終的な目的次第では不要な可能性もあるけど)Dictionaryが必須だとしたら、
使用しない行を予めオートフィルターで弾いて読み込む行自体を減らすのがいいと思う
>>23 配列を使うとセルへのアクセスが一万分の一なるね
>>27 非表示になってるセルもRange型一括だと配列に代入されてしまう
1つずつチェックしながらForで回すしかなくなるから、どっちが速いかなあ
つかまずディクショナリに入れたいのはRange型なのかそのセルの値なのか なんにしてもこの程度は一瞬で終わったけどな
>>26 シートにSQLはよく使うが、
数字が入ってると数字と判定されやすいの何とかならんかな。
IMEX=1も利かないときあるし。
(セルの書式設定で文字列にするのは全然効かん)
>>32 あー、あるあるだね
その辺はSQLの書きっぷりで例えば
数値として判断させるならケツに*1くっつけるとか
文字列としてならケツにブランクくっつけてやることで何とかなるけど確かにあまり綺麗な形とは言い難いかもね。
VBAのユーザーフォームについて、 プロパティウィンドウ上でフォントサイズを変更しようとした場合、 Fontの右側に出てくる[...]ボタンを押して、フォントウィンドウ上でサイズを選択するのが普通ですが、 ボタンを押すとなるとマウス操作が必要になります。 フォントサイズを変更する時に使えるキーボードのショートカットってないですか?
>>34 F4でプロパティウィンドウに移動、↓でフォントの行に飛んでからAlt+↓を押すとフォント選択ダイアログが開く
Alt+↓では開きませんでした。 ForeColor等のように、右側に出るボタンが ▼ の項目については、 Alt+↓で選択候補がプルダウンで表示されました。 これは知らなかったので、一つ知識が増えました。ありがとうございます。
数が多いときはforで回してフォントサイズを変えた方が楽
>>36 フォントが大量にインストールされてると、ダイアログが開くのに時間がかかる
ほかにも、PictureプロパティとかIconプロパティなんかの[...]ボタンもAlt+↓で押せるはずだから試してみて
それも開かないとなると、何かがおかしい
>>40 そういうことはubuntuでEXCELが使えるようになってから言おうね
なんのために? ベンダーロックインされてM$の奴隷になりたいの?
>>42 やっぱりあわしろ教信者の荒らしか
こいつらとRuby信者はわざわざ自分の巣から出張して来て無関係のスレ荒らすから分かり易い
EXCELが動かなきゃEXCEL VBA動かすことが出来ないだろ?
お前が来ているこのスレの名前を100回読み返してみようか。そうすれば多少頭に血の巡りが悪くても少しは理解出来るだろ
前スレでボロクソに言われた質問(↓)が解決しないので
再度投稿失礼します。
在庫管理でクロス集計表を使ってるんだけど
配列で取り込んだデータをデータがあったセル位置に戻す時って
どう指定してあげればいいの?
【用途】
納期毎に設定される納品数を在庫から引いて
いつ欠品になるか知りたい
伝わるか分からないけど↓
使ってるフォーマット形式
縦列
部品名
在庫
横
納期
納品数
>>44 命綱なしで62階建てのビルの屋上からぶら下がり懸垂をすると閃くかもしれんぞ
保証はしないけど
わざわざVBA使わなくてもワークシート関数で出来そうだけど
>>44 まるでまだ欠品していないみたいな書き込みだな
そんなことやるひまがあるならさっさと発注しとけよ
変数 = セルの範囲 を セルの範囲 = 変数 と逆にするだけ
>>49 そのセルの範囲の指定の仕方がいまいちピンと来ません...
>>50 2000ボルトの電気ショックでわかるようになるかもよ
>>50 配列の変数名をTgtAryとするならば
Range(Sheet1.Сells(LBound(TgtAry,1),LBound(TgtAry,2)),Sheet1.Сells(UBound(TgtAry,1),UBound(TgtAry,2)))
で範囲指定できないかな?
>>52 そいつはsubからend subまで書いてやらんと分からんやろ
>>34 遅まきながら横からながら
マジありがとう! これ知らなかった! 心底欲しかった!
>>54 △>34
◎>35
連投すまんアンカ間違った
>>52 >>53 ありがとう!
ちょっと試してみます!
Workbook_Openで表の処理とその上書き保存(ActiveWorkbook.Save)を同時にこなしてるのですが、直後になぜか.savedがTrueになりません。 しかしその後もう一度手動でWorkboon_Openの中身を実行すると、今度はTrueになります。 上書き保存の可否を聞かれずにファイルを閉じたいのにいちいち聞かれて困っております。どうしたらよいのでしょうか?
ひとまずOpenイベントの頭にStop書いてブレイクポイント作ったら開き直してイミディエイトウィンドウにDebug.Print Workbook.Savedって書いたら F8押して、イミディエイトのDebug.Printの行末をクリックしてEnter、F8押して、イミディエイトのDebug.Printの行末をクリックしてEnter ってやってみてもWorkbook.Saveの行でTrueになってないか見てみ?
>>58 Savedの行以降、確かにFalseからTrueになってるし、
Workbook_OpenのEnd Sub直前にStop入れてDebugで確認してもTrueでした。
なのに、End SubをまたぐとFalseになります。
>>59 × Savedの行
○ ActiveWorkbook.Saveの行
ActiveWorkbookじゃなくてThisWorkbookの方が確実ではあると思うけどEnd Subを跨いだ瞬間に変更フラッグが立ってるのがいまいち分からんなぁ
裏で動かすマクロは、常にオブジェクトを明示しないとバグの元になる ActiveSheetとか使うと高確率で誤爆する
ThisWorkbookにしたり、わざわざSavedにTrueを代入してやっても、End sub をまたぐとやはりFalseになってる…… 皆さん指摘の通りなんかブックの指定にミスがあるかもしれないので、もう少し色々試してみます
まずないとは思うがSaveの前にDoEvents挟んでみるとかはどう
Openイベントが終わったの後に変更があるとか? 例えばピボットの「開いた時に更新する」とか
>>65 だから
>>61 のリンク先に書いてあるように
Application.Displayalerts使っちゃダメなの?
VBAでIEを操作したい。エレメント内のonclickにJavaScriptが設定されてて、引数がthisなんだ。これはどういうコードかいたらJavaScriptがうごく?
スクリプト動かす必要があるなら泥沼だからやめとけ SeleniumかRPAかなんかでクリックをエミュレートしろ
>>70 JacascriptそのままNavigateでたいがい動くけど、実際に試してみた?
VBA Chromeでググれば色々でるが お前がどう動かしたいか答えるのはエスパーしか無理
Chrome使っていいんだったらエクステンション作ればよくね VBAに固執する意味がない
A列は途中で未記入の行は無し。B列以降は行によって列範囲は不明。途中の抜けは無し。この条件で一番右まで記入されている列は何列目なのかを知る方法をご教示願います。 この列の右に別の列を追加したいのです。
VBAでIE動かしたいっていうのは社内システムの操作じゃね 自動化しようにもそれしか選択肢がないっていうケース
そういうのは末端の社員が勝手に自動化して楽しようとしてるケースに限られる そうでなければシステム部とか管理部がちゃんと対応してくれるはずだし
IEが2022/6/15にサポート終了する件なんだけど、VBAのIE操作もできなくなるの?
>>82 サポートの終了と使用の禁止はまた別の話だと思うけどなあ
サポート外のWinXPが起動不可能になったとか聞かないし
>84 そうだとありがたいんだよね。 ただ記事で「2022年6月16日になっても、iexplore.exeは削除されないものの、アクセスしようとするとIE11は起動せずEdgeにリダイレクトされる」って書いてあったから不安なんだ
アプリは起動できなくされるけど、オブジェクトはさわれると予想 MS-Officeがもともとそういう構造だったし
ieが来年サポート終了するからchromeとseleniumで動かして見ようと思ったら webdriverが若干古いのしか公開されてなくて詰んだ 頻繁に更新するchromeをどうやって制御すりゃいいんだよ…
すみません、教えてください 配列の一部の最大値を取得する方法ってないでしょうか? 例えば二次元配列で a(1,1)=1 a(2,1)=2 a(3,1)=3 ‥ a(100,1)=100 という配列があったとして、a(10,1)〜a(20,1)の間の最大値を出す方法です for文で調べたい配列すべて調べて最大値を出す方法しか思い付かないのですが、他に方法はないでしょうか?
>>89 全部の配列を一旦シートにコピーして関数つかえばいいんじゃね
>>88 Ruby には、Webdriver を自動的にダウンロードする、モジュール・gem がある。
タスクランナーみたいなもの
ブラウザの起動前に、ブラウザのバージョンを調べて、
Webdriver のバージョンが、それと一致しない場合、
それと一致するWebdriver をダウンロードしてから、処理を開始する
まともな企業のLANだとネットアクセスとかダウンロードに制限かかってそう
>>95 これな
Rubyで使ってる環境はその辺のとこ甘いのかも知れないな
申請なしに何かをインストールする事も出来ないし、申請しても通らないから業務の効率化ってなるとソフトウェア開発の部署に発注するかVBAで作る以外の選択肢がない
自動更新するのは、個人のサイトとか ちゃんとした企業の本番環境では、毎週1回テストしてから、モジュール・gemを更新する。 そもそも、ブラウザも自動更新しない gemの更新を貯めないように。 基本は、毎週1回テストしてから更新する これをやっていない会社は、運用しているとは言えない。 ほったらかし
>>99 はー、都度テストするとはご苦労なこった
つまり大きなシステムになるとその分、
Rubyの場合は毎週テストに労力と人員割いて
金掛けて実施しないとダメってことか
かなり大きな会社じゃないとそこまで融通効かないだろうな
毎週、モジュールを更新するのは基本。 更新を貯めたら、保守・修正できなくなるので、ダメ。 こまめに・ちょくちょく更新 例えば、サイボウズ・Kintone は、 Kubernetes で毎日システムを作り直しているとか、 Netflix は毎日、わざとシステムを攻撃して、落としてテストしたりする ちゃんと運用していない会社は、更新をほったらかしにしてる
毎週1回、OS の更新も大変だから、 サーバーレス・自分でOSを管理しない、AWS Fargate を使えと言われる。 AWSが、OSの更新をやってくれるから だから、YouTube で有名な、雑食系エンジニア・KENTA の、 Ruby on Rails 初心者用コースに、AWS Fargate も入っている それで皆、くろかわこうへいのサロンで、AWSを勉強する Railsも今まで1人で、Heroku で作っていたのが、 Fargate, Terraform に変わってきてる 今の1年の未経験者は、10年以上のプロよりも、技術力が上になってる
>>104 大変だな
確かに新しいことを学ぶのは大事だけど
10年やって来た人が1年やってる人に負けるって
その人の10年は何だったのって話になるわな
俺、Rubyやらなくて正解だったわ
KENTA・くろかわこうへい、Udemy の人気講師・山浦清透などが現れて、 Ruby on Rails の教育革命が起こった ものすごい短期間で、効率的に学べる。 それで、1年ぐらい勉強した未経験者が、10年以上のプロよりも、技術力が上になった 東大合格マンガ「ドラゴン桜」みたいなもの 今の未経験者は、Docker Compose も必須
>>89 VBAで配列にして・・・ってのが前提になっちゃってるパターンだな
その配列もRangeから取得した奴だと思うが、素直にMax関数使いましょう
効率化できるけど使うやつらが池沼で勉強した意味なかったな
効率化よりもいかにシートの内容を壊されないようにするかの工夫ばかり必要なパターンだな
自力でできることを質問した場合、解答がなくても困らんだろ
>>98 発注出来る開発部署があるなら、そっちに投げた方が楽なんじゃ?
朗報
やっぱりオブジェクトは残る
> MSHTML(Trident)エンジンに関しても、互換性維持のため
> すぐに削除されることはない。OS内部に「IE 11」由来の
> 機能は残る。「WebBrowser」コントロールを利用するアプリも
> 引き続き利用できる。
>>111 別部署とのお金のやり取りが発生するからメチャクチャ渋るぞ
>>113 そんなん会社ごとによるし俺に言われても
最初は、動いていたのですが、 そのうち、毎回6行目でエラーが出るようになってしまいました。 例えば D5セルに入力した3桁の数字をした時に D7に百の位、E7に十の位、F7に一の位を表示させたいのです。 入力した結果を見て、再入力することもあるので 関数⇒値貼り付けはやりたくないのです。 できれば、どなたかご教授をお願いします。 ファイルのシートは1枚のみです。 【1 OSの種類 】 Windows10 【2 Excelのバージョン】 office365 Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long If (Target.Row >= 5 And Target.Row <= 161) And (Target.Row Mod 4 = 1) And (Target.Column = 4) Then r = Target.Row Cells(r + 2, 4) = Cells(r, 4) \ 100 Cells(r + 2, 5) = Cells(r, 4) \ 10 Mod 10 ← 実行時エラー1004 Cells(r + 2, 6) = Cells(r, 4) Mod 10 End If End Sub
>>115 補足 最初、エラーが出たやつ Cells(r + 2, 4) = Left(Cells(r, 4).Text, 1) Cells(r + 2, 5) = Mid(Cells(r, 4).Text, 2, 1) Cells(r + 2, 6) = Right(Cells(r, 4).Text, 1) 修正しても Cells(r + 2, 4) = Cells(r, 4) \ 100 Cells(r + 2, 5) = Cells(r, 4) \ 10 Mod 10 ← 実行時エラー1004 Cells(r + 2, 6) = Cells(r, 4) Mod 10
シートを保護したまま動かす前提で、何か色々修正したときに E7のロックをうっかりONにしてしまったとか。
>>118 ありがとうございます。 どうやらそれらしいです。 頑張ってみます。
>>115 Private Sub Worksheet_Change(ByVal Target As Range)
Dim n, n1, n2, n3 As Integer
If Target.AddressLocal = "$D$4" Then
If IsNumeric(Target.Value) Then
n = Target.Value
n1 = n \ 100
n2 = n \ 10 Mod 10
n3 = n Mod 10
Me.Range("D7").Value = n1
Me.Range("E7").Value = n2
Me.Range("F7").Value = n3
End If
End If
End Sub
もう見てないかもしれないけど、どうぞ。
基本が出来ていなくても何となく動いてしまう それがVBA
あの書き方でよしとするネット情報が多くておれも最初間違えてたわ
VBAで、QueryTableを使ってUTF-8のCSVを読み込ませてるんですが、 この読み込みのマクロを使った後に、そのxlsmファイルを開いたままの状態で、何か別のCSVファイルを手動で開くと 中の2バイト文字がグチャグチャに文字化けされてしまいます xlsmを閉じてからだと何の問題もないんですが、作業してるとちょっと不便なんですが原因は何なのでしょうか?
>>126 後段の「何か別のCSVファイルを手動で」は、
・別のbook(.xlsx)からPowerQueryでのcsv読込み?
・それともcsvファイルをダブルクリックで直接開き?
PowerQueryでのcsv読込みなら
エンコードを一度自動認識で読み込んでも
後からステップの「ソース」の設定(歯車または詳細エディター)で
固定することも出来るけど・・・
入力の手間や長くなるのが嫌なら Dim n%, n1%, n2%, n3% で全部Integerになる
>>128 済みません、VBAでQueryTableを使ってUTF-8のCSVをシートに読み込んだ後、適当なShift-JISのCSVファイルをダブルクリックして直に開くと
開いたCSVの中の2バイト文字が文字化けしています
Excelで開いてるウィンドウを全部閉じてから、CSVを開き直すと文字化けしていません
マクロだけじゃない、Excel全体は基礎ができてないとすぐ壁にぶち当たる
>>132 私もそう思いました
基礎って何ですか?
例えばVBAの基礎と言えば ・モジュールの先頭にはOption Explisit書いて全ての型は明示的に記述すること。 ・行、列を扱うときは使用範囲の最大値を考慮してIntegerでなくLong型で定義すること。 ・モジュール、関数、変数の名称は一見して何を意味しているのか分かるようにつけること。 ・モジュール、メソッド、関数には複数の役割を持たせて作らないこと。 ・基本、ひとつの変数に複数の型のインスタンスを代入する場合、Object型を使わずにインターフェースを作成して代入すること。 ・グローバル変数は使用せず、プロパティを使用すること。 ・VBA上では四捨五入を求めるROUNDは銀行丸めなので必要に応じてWorksheetFunctionのROUNDを使うこと 小数点以下の計算を行う場合、DoubleやSingle型は浮動小数点数扱いでIEEE754準拠のため誤差が発生 することがあることを念頭においておくこと。 まだまだ沢山あるけど 人や会社の厳しさや緩さによって多少は変わるけど こういった最初の内から押さえていないとマズいことだと思う。
>>130 問題が起きないように使えばいいのでは?
>>134 めんどくさいって思ったことないですか?
RowがLongなのはわかるけど、 ColumnはIntegerで足りね?
WindowsAPIのmciSendString関数を使おうとサンプルコードを見ているのですが、 Callで呼び出さずにrc=と記述されたものばかり見受けられます。 rc=の意味を調べてもなかなか回答が見つからず…これって何なのでしょうか。
1つのbookにシート数44、1シートに1クエリーがあり、 「すべて更新」ボタンでやると部分的にクエリー更新に失敗することが多いため、 一覧表作ってシート名とクエリー名を変数にして For To Next で順番にクエリーを更新していくマクロを組んだ。 それまではちゃんと機能していたものの、シートの改造・追加・並び替えをしたら、 実行時エラー '-2147319767 (80028029)': オートメーション エラーです。 無効な前方参照か、コンパイルされていない種類への参照です。 と、エラーが出て途中で止まったでござる。 検索すると「メモリーの使いすぎ?」みたいな話はヒットするも、よくわからず。 プロジェクトエクスプローラー眺めてて、 「シートの順番入れ替えたりしたので、シート名の順番がぐちゃぐちゃになってるな・・・」 と、各シートのプロパティで、 sheet01 (○○○)、sheet02 (□□□)、sheet03 (△△△)・・・ と直してみたら、今度はエラーも出ず、1発で44クエリーが最後までマクロが実行されてもうた。 Dim tblQ As ListObject ' 対象となるクエリーの変数宣言 Dim ws As String ' sheet名の文字列変数宣言 Dim q As String ' クエリー名の文字列変数宣言 (中略) Set tblQ = ThisWorkbook.Worksheets(ws).ListObjects(q) ←ここで止まった tblQ.QueryTable.Refresh BackgroundQuery:=False としてたのだけど、sheet名がマクロの実行順に並んでいないと、 VBAはwsやqの検索に失敗することがある (特にシート数が多い場合) という理解でいいのかな?
>>138 その程度の馬鹿頭でWindows APIなんか使うなよ
>>139 ご回答ありがとうございます!
rcという変数に関数を格納する、というのがいまいち理解できません。
Callで関数を呼び出しても問題ないはずですよね?
>>135 問題が起きにくくするようにのための決めごとだよ
もっとも、やってる仕事場のプログラマーが歩んできた経験則に大きく左右されたりもするから
そこは仕事場ごとのコーディング規約に基づいて組めばいいんじゃないかな。
それはプログラマーのお仕事としての基本になるかな。
>>136 面倒くさいよ。でも他の言語とは比較にならないくらい楽な方だよ。
>>137 またいつシートの行や列が増えないとも限らないじゃん。とある銀行系のところは行や列が増える以前からそんな想定をしてて最初からLong型を使うことがコーディング規約に記載されてたよ。
それにどうせInteger型はLong型を半分マスクしたものだからLong使って処理が遅くなったり容量余計食ったりすることないしね。
>>142 乱暴だけどw Functionと一緒だよ。
>>140 シート順を駄目な順に戻して再現するならそうかも
Ruby信者はあわしろいくやという人の手先らしい こんなスレまでわざわざ荒らしに来るちょっと頭が残念な人
>>134 > こういった最初の内から押さえていないとマズいことだと思う。
うんうん、ドヤるなら綴りぐらいはまともに書けないとマズいわなw
> ・モジュールの先頭にはOption Explisit
基礎ってなんですか?って質問している時点で恐ろしいわ。。。 基本を知らずにExcelを操作している社員がいる職場のシートは難解なんだろうなきっと。。。
>マクロだけじゃない、Excel全体は基礎ができてないとすぐ壁にぶち当たる と言われたらまず基礎がどのぐらいか定義してもらわないと 何言ってるか分からないからだ
その変数の問題だと思うんですが、subの中からFunctionをコールして、String型変数を引数で渡しても Functionの中でその変数が空っぽになります。どうして文字列が渡せないんでしょうか Function aaa(ByVal hoge As String) As Long を Call aaa(hoge) と書くとaaa内でhogeが空っぽです Public hoge とかしてみても駄目でした
>>155 まずはモジュールの先頭にOption Explisitって書いてみ
値渡しするならCall aaa((hoge))が望ましい っていうか返り値があるFunctionってCallで呼び出す?返り値と同じ型の変数に代入とか演算に使ったりしない?
VBAだけではないと思うんだけど、コードって使い回すじゃん?切った貼ったの繰り返しで完成後汚えなぁと思うことない? あと、コードを保管方法ってなんかないかな?使ったエクセル開いてコピーとかメモ帳とかいろいろやったけど不便でならない。
FunctionとSubの違いもよく分かってなかったんですが、Functionの返り値を変数で受けようとした所 そもそも渡したい文字列がFunctionに渡せなくて困ってました 単に、自作の関数を呼び出す時に引数を渡してやればいいだろと思ってたんですが、それが出来ないので VBAはその辺が厳密なんですかね……?
例えばFunctionで返り値をString型が欲しい場合求める場合 Public Function aaa(ByVal hoge)As String ってString型を指定してやってFunction内でaaa = 【返したい文字列】ってやる必要があるのは分かる?
Functionを呼ぶ側は bbb = aaa((hoge)) ってやるんよ 参照渡し(ByRef)の場合は変数をダイレクトに書いて良いけど、値渡し(ByVal)の場合は変数を括弧でくくってやらんと上手く渡せない場合がある。
>>160 コピーして切った貼ったして使うことを使い回しとは言わない
どっちにしろ使い回したい部分をモジュールや関数単位に纏めてそれを呼び出せ。
それが使い回しというものだ。
>>165 参照渡しと値渡しを同時に行う際、値渡しの変数に括弧をつけておらず、尚且つ変数のみである場合、参照渡しとして認識されるが呼び先では値渡し指定なので不一致であるとエラーを吐いて停止する(但し変数に対して演算を行っていた場合は値渡しとして認識される)から値渡しする時は括弧つける癖をつけろ。その方が可読性もあがる。
って言えば満足か?
>>166 うん?
それ何か違う気がする
演算した後値渡しでエラーになると言うことは、そもそも渡す引数の呼び出す側の値が呼び出される関数の引数の型で許容されるものでは無かったってことじゃないの?
例えば呼ぶ側でVariant型を定義した変数に“1”という文字列を入れていて、それを受ける呼び出される側の引数が
Integer型に宣言されていた場合は型違いでエラーになるけど、呼び出し前にその変数に対して+1したものを代入すればその時点で暗黙の変化によりVariantの
内部型はIntegerになるから型が合ってエラーにはならない。という状況で、
括弧の話とはあまり関係ない気がするんだけど認識違う?
Public Sub aaa() Dim aa As String, bb As String, cc As Long bb = ″b″ cc = 2 aa = bbb(bb, cc) End Sub Public Function bbb(ByRef b As String, ByVal c As Long)As String (中略) End Sub ってやるとFunction入る前にエラーで弾かれて aa = bbb(bb, (cc))ってやったりaa = bbb(bb, cc + 1)ってやったりすると通るんだがおま環だった?
>>148 やってみた。
やっぱエラーで止まった。
sheet番号がぐちゃぐちゃでもちゃんと動作するような、
クエリーを変数にした記述の仕方があるかもしれないけど、
少なくとも
>>140 のやり方では、どうもオートメーションエラーになるみたい。
>>170 コピーして実行してみたけど
まず“b”のダブルクォーテーションが全角なのと、Functionを閉じているところがEnd Subになっている。
コンパイルした時点でエラーで弾かれたよ。
そこを修正したらエラーが出なくなった。
関数やメソッドに括弧が必要なのは確か ・Functionで戻り値を受ける場合 ・Subで頭にCallを付けない場合 じゃなかったっけ? 後、括弧で括らないと順序関係なく 個別に引数を設定することが 出来るんじゃなかったっけか? まぁ自分としては何であれ括弧を付けて Subの場合は頭にCall付けて関数やメソッドが 呼ばれていることを明示する 必要があると思うけど。 あまり引数が多い関数は引数そのものを 抱えるエンティティクラスを作って そのインスタンスを引数で渡してやれば いい気がするしその方が可読性高いよね。
>>162-163 ありがとうございます、値渡しがどうしても上手く行かなかったので試してみます
大きな声で言えないけど、おれoption explicit付けたこと無いしグローバルじゃない変数は宣言しないで使ってる。グローバルな変数大好き
え?option explicit付けない人見たことない。。。
ゆうてそういうことしないよって人はプログラマとかじゃないんやろ プログラマやってたら不安になると思うし
>>160 VBAを使わない
pythonで外からexcelを操作する
pythonのコードはgithubで管理
Ruby に option explicit は無いからな
>>178 普通にいるよ
流石にソフトウェア開発者にはいないと思うけどVBAは事務屋さんも作ったりするからそう言う人はそもそもOption Explicit自体を知らなかったりする
知ってて使わない
>>177 みたいのは単なるアホ
俺みたいな事務屋さんは知ってても必要ないんだってば。事務屋さんだから
>>184 みたいに大きな声は出さないけど
でも流石にRubyの人と同一視するのはやめて。けっこう傷付くし悲しい
知らないで使わないのはただの無知 知ってて使わないのは悪質なバカ
VBAって宣言せずに使ったらローカルになるんだっけ? プロと違って適当にかくから強制ひっすだわ こういうところに書くのは省略しまくるけどな
>>160 > あと、コードを保管方法ってなんかないかな?使ったエクセル開いてコピーとかメモ帳とかいろいろやったけど不便でならない。
普通にエクスポートすればいいだけじゃねーの?
>>73 すごい亀レスだが、dispatchEventでなんとかなったわ でもいつできなくなるかドキドキ ieは終わりの圧力に屈しそう
>>186 存在を知ってるのと正しい使い方を知ってるのは別
入力ミスが見つけやすくなるという大きなメリットがあるんだから、使わないのは無知と言われても仕方がない
普通さ、最初に覚えるだろoption explicitは? それらを参考書とかで勉強してこなかった人とかいるのかなと? まあ、どう運用しようがその人の勝手だろうけどさ。
option explicitは知ってるが いちいち書かんし設定もせん 宣言は常にやる、それだけ
>>193 いちいち書く?
まあその程度のオツムならたいしたコードは書いてないだろうから使わなくてもいいかもねw
>>193 俺も宣言は他言語同様やるがOptionは気にしないな
下手するとそれがあるせいで変な場所で宣言してる例をよく見る
Task オブジェクトってなんでWordだけなん?
>>194 自動構文チェックONにしているんだ。
別にどっちがいいって訳じゃないけど俺はOFF派。
コード書いてる最中にどこかのコードコピーして持って来たいときカーソル当てると
エラーのメッセージボックスが上がって元の位置に戻されるのが鬱陶しいのと
他の開発で使ってるVisual Studioが元々そんな感じだからそっちに合わせてる。
ただそうするとエラー部分が赤くなるだけでどんなエラーかは表示しないから一長一短。
OFFはパッと見でどんなエラーか分かる人向けでそれ以外の人にはお勧め出来ない。
>>195 Option Explicitの設定してて変な場所で宣言って聞いたことないな。
そんな具合になったコード晒せる?
>>195 > 下手するとそれがあるせいで変な場所で宣言してる例をよく見る
意味わからん、例示してくれ
>>197 > 自動構文チェックONにしているんだ。
まあこれは人によるかな
あんたも書いてるようにエラーになった時にいちいちダイアログが表示されて鬱陶しいとは俺も思う
変な場所って、プロシージャの真ん中あたりに宣言がポッと出てくるやつか? いちいち上に戻って書き足すのがクソダルい気持ちは分かる
>>201 見たことないなぁ
どんな操作をするとそうなるの?
そもそも最初に設定しておけば必ずモジュール作ったときに一番上に出てくると思うけど
違う違う、そうじゃなくて、初心者がコード書く時にエラー吐かれる度にその場で直した結果として変なところで宣言してるやつってこと
>>203 Option Explicitとは関係ない話?
だったら本題と内容がズレるな。
>違う違う、そうじゃなくて、初心者がコード書く時にエラー吐かれる度にその場で直した結果として変なところで宣言してるやつってこと
これは初心者というか.Net系やJavaとかやってる人に書かせてもそう書くときがある
関数内で定義したVBAのDimとかのスコープが関数単位で効くものでなくて
If とか For とかのブロック単位で効くものと勘違いしているらしい。
>>203 使う直前に宣言するって言うのは別に変な流儀じゃないけどな
むしろ先頭で宣言しろと言うのは老害の可能性もあるし
>>205 それは可読性の問題
あくまで俺だったらだけど同一スコープの先頭に書くな。後で変数定義して既に使われてる変数書いてエラーになって「あ」ってなるの嫌だし
一々コードから何の型で宣言しているのか探しにいくのも面倒くさい。
>>204 いやいやズレてないよ、
>>195 がそういう話をしてるんじゃないかって話だったでしょ
ありがとう勉強になる…そうか俺老害側か…
>>207 よく嫁
>俺も宣言は他言語同様やるがOptionは気にしないな
>下手するとそれがあるせいで変な場所で宣言してる例をよく見る
Optionがあるせいで変な場所に宣言してる例をよく見るって書いてあるだろ?
そっちの話はOptionの話と関係ある?
後、宣言する場所に関しては老害とかないから安心していいぞ。何故ならもっと新しい言語のVB.NetやC#でも効くスコープの先頭に書くのが一般的だから。
>>208 >>203 option付けたら変数宣言しないとエラー出すじゃないですか
>>209 Optionつけようがつけまいが
変数宣言するのは基本だと思うけど?
してないの?
>>206 別にお前さんに強要するつもりはないから自分の好きな様に書いてくれ
ただIDEの使い方位は覚えておいた方がいいんじゃないかな
> 一々コードから何の型で宣言しているのか探しにいくのも面倒くさい。
>>210 俺とお前と
>>195 がしてても、それが基本でも、
>>195 が良く見るというコードを書く人たちが基本が身についているとは限らないじゃない
だから
>>203 でわざわざ初心者って言及したんですってば
>>212 Visual Studio辺りであればカーソル合わせると
定義した型が表示されるから分かるが
VBAの場合は一々「型の定義」でそこまで
飛ばないといけないし、何度か最寄りの型まで
調べると元の位置に戻ってくるのも
面倒だと思ってるんだけど認識違う?
違うんならそのIDEの使い方とやらを
提示して頂けると有り難いんだけどな
変数の宣言って頭でまとめて宣言するより使う場所で宣言するのが今の主流だった気がするけどウチの会社だけなんかな
>>213 よく分からないな
初心者だから変数定義をしていないといいつつ
変数定義しているところがポッと出てくるという。
変数定義してたりしてなかったりというのであれば
もうそういう次元の話ではなくなってくる。
>>215 状況がよく分からないけど
「使う場所で宣言する」というのは
スコープ毎に纏めていないと言うことだろうか
少なくとも俺が今までやった言語では
そんな流行りは見たことないなぁ
というか見辛いもの
>>217 おじいちゃん、もうそのレベルの低い話は終わってるからw
>>211 ごめん
>>216 してないとは言ってないよ。option付けたら必ずさせられるじゃん。してたりしてなかったりにはなり得ない
初心者だから変数定義を最初に必ずするクセがついていないんじゃないかって話です
vba不慣れな人が宣言してない変数を使おうとして、実行時にoptionどおりエラーを言い渡され、慌ててエラー箇所の直前に変数宣言をぶち込む。その結果コードの真ん中に変数宣言がポッと出てくるやつになるんじゃないかってこと
>>220 言いたいことはやっと伝わった
では話を戻そう。そのコードを見てどう思った?
変数宣言強制設定して変数宣言書き込まないとエラーが出るようにするのが悪いと思った?
そんな奴がポッとそんなところに変数宣言を書き込んだ奴が悪いと思った?
前者というのであればここで話はもう終わり。
恐らくこれ以上話してもお互い得られるものは何もないと思う。
後者と言うのであれば、変数宣言強制した際に少なくとも変数が宣言されていないことは発覚する。これだけで恩恵があることは理解出来るかな?
その辺にポッと書いてしまったことはそれ自体が問題であり、その人に促せばいいんじゃないかと思うけど?
>>219 自分の間違いが顕わになって、反論できないバカ
くだらないタイプミスで時間を無駄にしたことはありませんか?
設定のことを含めた話ということすら読み取れてなかった7vXXが一番レベル低かったな
>>223 ない・・・と言いたいところだけどどうやっても0にはならんわなw
いつも思うのがOption ExplicitがあるんだからOption Strictも用意しといてくれればいいのにと。
変換に際して暗黙の変換をさせずにどれも明示的な変換を漏らさずさせられるようになれば
テストする際も安心して走らせられるのにって思う。
もっとも、人によっては面倒くさいと思う人が出るんだろうなぁ・・・
>>218 C#でvar使うなら型の確定する現地じゃないとだめじゃね?
>>221 確認だけど、俺はそのコード見てないし、見てない以上何とも思ってないぞ。俺は>195氏じゃない
>>201 >>203は>195の言うコードを予想したものだということを踏まえて、それでも話を続ける?
>>226 そもそも型定義出来る言語であまりvarは使わない。まぁ厳密な書き方しない人は使うんだろうけど。
それにそれもスコープが効いてる頭でやる。
むしろC#のvarはVBAのVariantと違う。
別の内部型を使うことによって違う扱いをするようなことは出来ない。
最初に設定された値により使用する型が確定されるため、一度設定したらその型として定義される。
例外があるとすれば無名型とかレイトバインディングにより型が確定するもの。
>>227 では「見た」と言うのを「予測した」というのに置き換えて考えればいい。
そう言ったコードをどう判断するか、と言うことにかわりはない。
>>228 だからC#では途中で宣言するvarが流行ってますよと
VBAの場合、変数は先頭で宣言するのが望ましいとされるけど強制ではない
そして、スコープ内ならどこに書いても効力は同じ
だから使用直前に書くコーディングルールでも動作に支障はない
別人が保守する可能性がある時に、ルールをどう伝えるかが問題になるだけ
コードの先頭にコメントで書いてもいい
参考、「通常、Dim ステートメントをプロシージャの最初に配置します。」
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/dim-statement いちいち先頭に戻って確認するのが面倒と言ってる人がいるけど、ウィンドウが分割できることを知らないのか あるいはよっぽど狭いモニターでやってるのか そもそも設計がきちんとできてれば、型も自然と決まってくるんだから確認する必要なんかないだろう どっちにしろ自己責任で片付く問題でしかない
>>230 流行ってない。
C#やVB.Netの場合はそもそも変数の定義と一緒に値を設定出来るからスコープの頭で定義してvarの場合一緒に型を決める頭を設定する。
そしてスコープも関数単位ではなくIfやCase、For文等の細かいブロックに分かれるからそれが最小単位だ。
もしC#で他の誰かが組んだコードが確認出来るならしてみればいい。
>>214 そんなに型知りたいときある?
あとそれ先頭で宣言しても似たようなもんじゃね?
>>229 おーけー、じゃあ戻るというか新しい会話だね。
別にどっちも悪くないんじゃない? 少なくともoption付けて悪いってことはないでしょ
可読性の問題については頭にまとめて書くのが当然だとは思ってたし、途中にあったら変だと感じるけど、悪いかは分からん。今日は勉強させて貰った
>>232 ウィンドウ分割なんて一つしか出来ない。
ソースを確認するのは有効かも知れないが、そんなんで一々散り散りになった変数の型確認などしていたら大変な手間だ。まだ定義の確認で飛ばした方がマシ
設計どうのと言っているが、そんなコードや型までこと細かく書くことはまずない。
それは設計書ではなくコードそのものをただ日本語の資料におとしたというだけ。コードを見ればいいのだから無駄な作業だ。
>>234 何か沢山の人とやり取りしてると話がごっちゃになって・・・すまんな。
俺は使うスコープの先頭に書く派だけど、そっちは何の先頭と言ってるのだろうか。
話はそれによりけりかな。
>>231 最初に言った
これは可読性の問題だと。
動作に支障がないからと言って関数単位のスコープであればそこだけ確認すれば良いものを
わざわざ大風呂敷広げてそのモジュール単位にする理由が分からない。
>>236 とりあえずそこまででも理解して頂ければこちらとしても嬉しいし有り難い。
>>238 >>201 からの流れだからSub/Functionの先頭でしょ
>>241 なるほど、ありがとう。
それなら基本俺も最初からそう言ってるしそれでいいと思う。
モジュール単位で使う必要のあるものはモジュールの頭で書けばいいしね。
ちゃんと教科書通りにやれ! と怒鳴られたらどうする?
後、varで思い出したけど、これは余談になるんだけど、以前ExcelでPythonが使えるようになるかも知れないって話があって、結局のところ塩漬けになってしまったから残念ではあるけれど
つい五月の終わり辺りにExcel webが解放されたね。
使用言語はJavascript、Webのものだから今後HTML、CSS、クライアントやWebサーバー、IISや場合によってはJqueryやDBサーバーの知識が必要になる可能性がある。
いや、お客さんやエンドユーザーさんが「Webで確認したいなぁ」とか言い出しそうな人がいたら要注意だ。
まだどのような影響があるかは分からないけど、場合によってはおじいちゃんでその辺の理解がないと淘汰される可能性があるかも、とだけ言っておこう。
https://www.google.co.jp/amp/s/forest.watch.impress.co.jp/docs/news/1328/019/amp.index.html >>140 wsとqをどういう風に設定しているのか確認しました?
google apps scriptみたいなもんか
>>248 まさにそんな感じだろうとは思ってる。
ただ、IEには対応していないと書いてあるので
Edgeでは動くだろうけどchromeだとどうか・・・
すまん、ウチに入れてるOfficeは365だけど企業用ではないから確認出来んのよ。
まぁVBAは今までの資産があるし、今こんな話をするのは早すぎかも知れないけど、この機能を使おうとした場合、大きなお金持ちの会社になると 「じゃーボタン押したらDBの内容表示させようかー」とか軽くお客さんが言い出す可能性もある。 SQLはそのまま使えるけど、ビジネスロジックの部分はどうしようか、とか 「じゃー他のシステムと統合しようかー」とかになったら、上手くそのシステム作成の話に乗れればいいけど、そうでなければお払い箱になる可能性もある。 WebのビジネスロジックにVBAは使えないから他の言語も勉強しなければならない。 これは他のWebの言語やってるところも他人事じゃなくて「じゃー画面はEDGEでEXCELで表示してねー、ダウンロードはいやよー、編集して反映させたいからー」 なんて言われた日にゃUIをこれにしなくてはいけない。 今すぐと言うわけではないし、そうならないことも考えられるけど、ひょっとするとこれからEXCELというものは今までのものと そういう方向性のものを含めてEXCELと呼ばれることになるかも知れないということ。 まぁ今は聞き流して貰って大丈夫だよ。 ただ、そう言う話があるということだけ心の片隅に置いといて貰えれば。
5分でかけるスクリプトに仕様書やらテストやら乗っけて おいくら万円で売りつけるサービス業者のピンチですか?
>>251 ピンチになるかどうかはまだ分からないけどそんな可能性もあると言うこと
それにそう時世が動いたとしてピンチになるかはその人次第。
VBAやってる人は、不安なら他の本格的なプログラミング言語に手を出す前に今時のWebベースのノーコード開発を習得したほうがいいと思うよ VBAできる程度の頭があるなら難しくはないだろうし、ヘタにスクラッチで作るより遥かにまともなものができる
恐らくこれに対応しろと言われて一番困るのはMicrosoftのOS使ってないところ。 lMicrosoftであれば.Net freamWorkでそのようなライブラリをすぐ揃えてくれるだろうけど そうでなければオープンソースのものは誰かが作ってくれるのを待つか自分でライブラリを作るしかない。 そしてMicrosoftはそれが内部でどう作られているのか教えてくれる気は更々ない。誰かの解析待ち。
DBはアズールレーンだろ windowsはどうでもいいよ
>>255 アズールレーンがどんなDBか分からなかったから
wikiで調べたらゲームしか出てこないな
何だこれ
https://ja.m.wikipedia.org/wiki/ アズールレーン
DBはOracleでもSQLSERVERでも構わないけど
問題はUI部分をどう使って行くかよ。
これを使うライブラリがないとキツいかも知れない。
まぁOSがWindowsでなければgoogle spreadsheetで代用すればいいんじゃないか?
要件を満たすことが出来ればだけど。
Excel使うにしてもO365のWeb版Excelでいいでしょ Windows要らん
>>257 画面制御行わないのであればね。
企業用のofficeライセンスが無いとJavaScriptが使えん
今MacのVBA案件渡されて泣きそうなんだが Windowsのが100倍良いわ
>>261 ブラウザ版は出来損ないだ
食べられないよ
ieの操作なんだけど複数タブ開いてて、操作するタブ指定するにはどうすればいい?1つしかWindow開いてない状態だと問題ないものが、2つタブを開いたら、elementが見つかりませんてなる。
>>263 なぜこのスレで聞くの?
タブは別のwindowだよ
>>263 んー、適当で申し訳ないけど
VBAではあんまりそういうことやらないんだけど、Javascriptで同じ名前の項目を拾おうとするとそれは項目のリストとか配列とかそんな感じのもので拾えるから
多分、その拾ったエレメントはそんな感じになってる気がする。(0)とか(1)とかつけてあげれば何か拾える気がするよ。違うかもしんないけど。
適当でごめんね。
【Ruby】window_handles・・・複数のウインドウハンドルを取得する
https://www.seleniumqref.com/api/ruby/window_get/Ruby_window_handles.html Ruby, Selenium Webdriver では、
配列のdriver.window_handles を使う
# 全てのウィンドウ(タブ)ハンドルを取得
allHandles = driver.window_handles
driver.switch_to.window( allHandles[0] ) # そのタブへ移る
driver.get( ここにURL ) # そのURLを開く
【Ruby】window_handles・・・複数のウインドウハンドルを取得する
https://www.seleniumqref.com/api/ruby/window_get/Ruby_window_handles.html Ruby, Selenium Webdriver では、
配列のdriver.window_handles を使う
# 全てのウィンドウ(タブ)ハンドルを取得
allHandles = driver.window_handles
driver.switch_to.window( allHandles[0] ) # そのタブへ移る
driver.get( ここにURL ) # そのURLを開く
PC Windows2021.6.8 Tue 17:00
最強のExcel使い決定戦、開幕―財務モデリングの腕を競うe-Sportsトーナメントが本日20時放送予定
マイクロソフトが贈る最新e-Sportsタイトルは「Excel」だ!
https://www.gamespark.jp/article/2021/06/08/109325.html ぶいびーえー以前にウチの取締役やってた方が60代半ばのジジイが関数始めて興味が出たらしい。 それはいいんだけどいちいち自慢してくるのがうぜー。
option explicit付けない選択肢もアリだと思うけどな。必要あれば宣言するだけだし forとかで宣言するゴミ変数の宣言が軒並み排除されるのは割りと可読性良くなる それに型の自動判断がそこそこ優秀な部類なのはVBAの特権
>>267 望んでた回答と違うし、自力で解決できたけど。Seleniumて簡単そうやな。食わず嫌いせずにやってみようかな
底辺で上から許可とれないのでSeleniumとかVBA本体に標準装備してください
>>65 ですが、社内ネットワーク上の共有フォルダに入れているのが関係してそうです。
ファイルを開くたびに「編集を有効にする〜」が出るので、それがThisWorkbook.saveと相性悪いような気がします。
vba初心者すぎて躓いています。以下についてどなたか作成お願いできないでしょうか。 任意のフォルダを指定 ↓ その中でファイル名に特定の文字列(ex.請求書)を含むExcelのシート全てを一括保護(パスワードあり) ↓ 保存して閉じる ネットで調べながら作っているのですが、上手く動かず諦めかけています。 よろしくお願いいたします。
>>279 質問スレだから聞くのはいいけど丸投げで作ってくれと言うのはこのスレに限らずマナー違反。
大体「死ね」と言われるか「いくらで?」と高額吹っかけられることになる。
板自体の初心者だろうからいきなり言われて自殺されても困るし先に一応言っとくね。
>>279 > ネットで調べながら作っている
ならそのコードを晒せ
解説サイトを見ると、たまにグローバルのApplicationから呼び出すのはなく New Applicationでインスタンス化して使用しているコードがあります。 これらの違いは何なのでしょうか。
>>283 ふーん、出来るんだ。
試してないけどそのままの意味じゃないかな?
今のじゃなくて新しいEXCELのアプリケーションを開いてそっちを操作するってことだと思うけど。
試してみた?
>>279 ファイルシステムオブジェクトでFilesを取得してForEachでFileをひとつずつ処理する
>>279 丁寧に教える。
初心者なら一気に作ろうとしない。
シートを保護するスクリプトをつくる。
フォルダ内のファイル名をログとかに出すスクリプトを作る
文字列から特定の文字列があったら、メッセージボックス出すスクリプトをつくる
保存するスクリプトを作る
ここまで作れば、どの様にがっちゃんこすればいいかわかるはず
Ruby では、wild card を使って、 例えば「*メモ*」で、「メモ」を含むファイル名 # . で始まる、隠し directory, file を除く glob_pattern = "C:/Users/Owner/Documents/Ruby/*メモ*" results = Dir.glob( glob_pattern ) .select { |full_path| File.file?( full_path ) } # ファイルのみ puts results 出力 C:/Users/Owner/Documents/Ruby/Rails インストールメモ.txt C:/Users/Owner/Documents/Ruby/コマンドのメモ.txt
>>284 試してみても普通に新しいエクセルが起動するだけですね
ただしウインドウはありません
ブックを作ってVisibleプロパティをTrueにしても表示されませんが、
一度FalseにしてからTrueにするとウインドウが表示されるというバグみたいな挙動があります
話を戻します
最近見たnew application使用例は、コントロールのイベントを無効化するのに
新しいApplicationインスタンスのEnableEventsをFalseにしていました
確かにそうしないとリッスンされるのですが何故何でしょうか
メリケンのゲームも連邦裁判所がどうたら普通に書いてなかったか しらんぷりしときゃええがな
>>288 何かそれだとシート全てに保護を掛けるに至れてないな。
・Excelでどうやって使うのか
・細やかなセルやシートの操作はRubyからどうやって指定する?
この辺が満たせないと役に立たないからただのオナニーだね。
>>270 いるんだよな大抵ひとりはエクセルでマウントジジイ
マウントしてくるヤツの心理がよくわからん
ExcelでマウントとれないからってRubyだと・・・とか言ってくる奴もな
つか爺さん世代はパソコン自体バリバリ扱える人とまるっきしダメな人の格差が激しい印象だわ
若い世代は今スマホしか使った事がなくてPCの使い方分からんって子もかなりいるぞ
パスワード付きのファイル(複数)を一つのファイルをまとめようとして @まとめ.cells(i.3) = パス付き.cells(i.2) Adicitionaryを使いまとめファイルに統合 両方のやり方を試して@は出来てAが出来なかったんだけど、 パスを無視してAのやり方でやる方法ってないかな 一応、AでUserInterfaceOnly は使ってみたけどエラーが出ちゃって出来なかった
パス = path パスワード = password
若いコは学校でPC使って授業受けてるイメージあるんだけどなぁ。。。 単にエクセルやワードに興味無いだけか
VBAだけでデータをWebから取得、加工、メール配信を自動化するのはどうかな?他のスクリプト言語とかも組みあわしたほうがいい?
全員が完璧に暗記してたら偏差値や学歴で格差がつくはずないんだし、学校で習ったことの一部しか覚えてない方が普通ってこと
普通の公立だけど小中学校でPCの授業あったよ 学校内サイトとか社会科新聞とか書かされた 高校は大学進学だったから受験に意味のないPCなんて扱わなかったが、 大学はあらゆる申請からレポート提出まで全部PC(持ってない人は購入必須)だった 授業申請はスマホで出来なくはないだろうが、普通に使いづらい
うん、年齢というかもう力尽きて新しいこと覚えようとしない人はダメだろうね 若い人でも年寄りでもね
数学が理解できる人と苦手な人では、生まれつき脳の構造が違ってることが判明してる つまり才能やセンスがないやつは、どんなにがんばっても無理なんだよ もうちょっと脳科学が進めば、無駄な勉強はやらずに得意分野を思い切り伸ばす方針に変わるかもしれない
>>309 そういう考え方もあるかもしれないが、苦手を努力によって克服する人もいると思う
>>309 ソースくれ。昔から不思議な問題だった。
つまりアレかい?理系はExcel余裕でマスターとかそんな話になるのかい? 体育会系の自分はExcel無理って話ね
>>311 たとえばこことか
https://gendai.ismedia.jp/articles/-/53474 >>312 一人の人間が持てる才能は1つじゃないから、数学とスポーツは両立可能
「努力する才能」ってのもあって、これを持ってる人は持ってない人より、短時間で苦手を克服できてしまったりする
努力によって脳の構造を変えるのか? そういうの盲目的に信じる人ってだまされやすい脳の構造なんじゃね
アインシュタインの脳には、
自分の研究分野用の房が出来て、そこが発達していた
暗記脳は肉料理の量で決まるから、肉を買えない貧乏人は不利
ドラゴン桜の英語教師・竹岡広信は、京大英語を役に立たないトリビアを問う問題と批判していた。
漢字で言えば、寿司屋の難しい魚偏の漢字を読めたら、合格するみたいな話w
日本の英語の教授などは、英語できない香具師ばかり。
赤本の英語で勉強するなって言ってる。無茶苦茶だから
逆に英検とかは、何百人のネイティブで監修してるから、筋が良い
>>302 Ruby, Selenium Webdriver とか、AWS Lambda とか
>>315 素質があるかないか、ゼロかイチじゃなくて能力にも幅がある
高い才能がある人は短時間で結果を出せる
才能がなくても努力すればある程度のところまでは行けるけど、能率悪くて時間がもったいないよねって話
努力・経験で、脳の構造も変わる。 それどころか遺伝子も変わるので、努力・経験したことが子孫に遺伝する 例えば韓国人は、何千年も中国から攻め続けられた事で、 苦痛が焼き付いたような顔付きになった。 性格も火病で、すぐ発狂するようになった いつ攻め込まれるか分からないので、 身を守るために、即座に発狂して闘うようになってる
VBAに外部アプリ操作させて入力を自動にして楽してるから思うんだけど VBAなしじゃエクセルって何もできないに等しいね 数字出力するだけでしょ
関数のことを数字出力してるだけってんなら他にExcelでできることはドキュメントソフトか画像ペタペタくらいだわな
あと少し数式増やして複雑にすると使い物にならないくらい遅くなるし vbaだけなら20万行あってもスイスイ進む神ソフトになる
でもよ、中には習ってないのに最初からバリバリExcelできるヤツいるけどそんなの稀なタイプの人間かい?
VLOOKUP覚えると世界が変わるぞ 表計算ソフトから汎用データベースに
>>312 心配すんな
このスレに来ている時点で
そんな頭のいい奴も悪い奴もいないだろう
VLOOKUPで汎用データベースだって このスレらしい馬鹿だな
検索することだけできれば「汎用」データベースなのか? 恥の上塗り来たな
いやぐぐったらやっぱり汎用であってね? 色々なことに使えりゃ汎用だろ?
ついでに最近VBAでSQLが使えることが発覚した 性能はお察しだが お手軽データの突合編集にはこれ以上のものはないね
色濡れる、オプジェクト使える、コメント入れられる、表示形式変えられる、グラフ作れる データベースにしてはやれることが多くて取っ付きやすいよね
いやでもここVBAスレなんだからもうちょっとVBA持ち上げてくれよ 控えめに言って神だろVBA 他のプログラムよりダンチで簡単らしいし大抵のパソコンに入ってるから オンライン使用禁止、外部ソフト禁止のパソコンでも使えるし
素人でも扱える、どこでも使えるプログラミングソフトを作ってくれたマイクロソフトには感謝しかない
開発環境が貧弱すぎます 変数のスコープ狭いモード作ってください。コピペがしづらいです Option Explicit つけてるときぐらい宣言してない変数書いた時点で警告してください インテリセンスもひどいです。いくら実際の型がわかんないとはいえ、時代が経ってるんだからEdit時にもっと推論するとかできないんですか!?
よく分からんけど 俺みたいな素人には十分なのさ 複雑になったら分からなくなるだろ
常にJavaやC#の型で守られた なにもかもほとんど機械がやってくれる世界のお手軽さを知った者としては 1行書くのもドロ沼をすすんでいるようだ
>>332 それはデータベースの機能じゃないでしょ
おれも10年前だったら
>>334 みたいなこと言ってたかもしれんが、
今なら同じ環境でもVBAより先に
Excel上の処理ならPowerQuery、無関係な処理ならPowerShellを勧めるかな
PowerShellはWindowsでしか動かないからやだ
>>342 何年前の認識だよ
PowerQueryは便利だから 日本語の本がもっと出る程度に流行ってほしい
>>340 俺は338じゃないけどVBAは苦行だよ
業務フロー設計するときにはVBAはどうしてもどうしても必要なときだけ、使用範囲も最小限になるように設計する
>>338 EXCEL操作するとき外部からいじってんの?
それやったことあるならJavaやC#ではインテリセンスとか比較にならないくらい面倒な問題にカチ当たると思うけどそのことは黙ってんの?
>>347 なんでExcel操作が前提になってるんだよ
Excelの呪縛のないプログラミングは最高だぞ
エクセルのデータ使わないと厳しい作業だから完全にエクセルなしにはできないな
終端の入出力にExcelを使わざるを得ないことはあるけど、途中のプロセスに必要もないのにExcelを介在させないようには気をつけてるわ Excelで入ってきた可能な限りExcelからすぐに引き剥がす
354 ミス Excelの形で入ってきたデータは可能な限りExcelからすぐに引き剥がす
だってここのスレはあくまで実務より趣味の世界のマクロ向けなんでしょ?
動画編集ソフトとかならともかく、Excel自体が趣味で使うような類のソフトじゃないんだから過去スレ全部ひっくるめてもそんな話題1割あるかないかだろ そもそも今どき趣味のプログラミング言語にVBA選ぶとかマゾかよ
ほぼ趣味たまに仕事だけど最近ちょっと飽きてきた 何かモチベーション上げる手段はありませんか? テトリスやマインスイーパはもう作りました
IEサポート終了でVBAからのIE操作は出来なくなる? インストール出来ない環境だとこれしかないのに
>>349 つまりやったことないと・・・
EXCELはCOMだからjavaやC#で外部から弄るとObject開放の壁があってかなり面倒になることはやったことある人なら一発でそれが出てくるもんなんだけどな。
NPoi辺り入れれば開放考えないで済むけどわざわざそのために新しい構文覚えるのも面倒だし
何といっても仕事場に入れていいかどうか確認するのも大変だし入れられないとなったらこの手段も使えない。
そんなもんが入れられるならむしろこういう物をブチ込んだ方がまだ楽
https://qiita.com/mochimo/items/e9be36619a76e15bc898 >>349 それと何か勘違いしているみたいだから言っとくとC#で組んだら楽というのであればC#で組めばいい。
EXCEL VBAはそれがEXCEL単体で動くから楽なのであって、別にプログラムをC#で組むことは出来る。
厳しい事書くけど、「Excelやマクロの基礎ってなんですか?」と聞いている時点であなたには無理です と、昔に俺も言われた事ある泣 このスレだったかExcelスレだったか忘れたけど。。。 キツいレスだったけど、今思えば回答者は間違った事は言っていたなかったなと。
いじめられすぎると人間どういうわけか なにがなんでも相手が正しい理由を見つけようとするらしい
いや、自分の質問が悪かったんす 基礎の意味もわからずに質問するな!と言うことなんでしょう。 いじめられても仕方ないです。
そもそも何がエクセルやマクロの基礎なのかはっきりしてないからな 非常に答えにくい
皆さんありがとうございます。 基礎なんて意識しなくて良いんですね
基礎を身につけろ、というならまず基礎を定義してもらわないと
お仕事で使ってる人は仕事場にコーディング規約があるから基本それが基礎と考えていいと思う。 基礎として存在しているものがなぜ基礎と定義付けられているのか?それを考えるのが一番大事なこと。 例えば基礎なんて意識しないでGoto文とか乱用したりするとどうなるか、とか考えれば必然的に何故基礎というものが大事か、と言うことが分かってくると思う。
上で言われてる基礎って gotoをめちゃくちゃ乱発できるようなレベルの話じゃないと思うけど
option explicitでさえ議論分かれるもん 変数宣言はするべきって所は共通みたい? ただしforループのカウンタ変数はいちいち宣言しないって人も見た
最初は変数宣言とかオプションなんちゃらとかイラン 処理速度稼ぎたくなったりdate関係で躓いたときにはじめてやればいいだろ
だから最初の話でしょこれ 独学で出来て躓いたレベルの人の話じゃないっしょ
ここにはトレーナーに付いて教わる人達はいないでしょう。。。 つまり独学できる高い能力もった人達ばかり
例えばだけど 仕事場でコーディング規約に「モジュールの頭にはOption Explicitをつける」と書いてある場合、付ければ問題ないし、付けなければ怒られる。 コーディング規約に書いて無ければ付けても怒られないし、付けていなければ怒られないケースと、「そのくらい書いていなくても常識だろう」と怒られた挙句、「コーディング規約に書いていなかった」と反論しても、「じゃ、書いといて」と言われるケースも考えられる。 コーディング規約に「付けるな」と書いているのであれば付ければ怒られるし、付けなければ問題ない。 この内、書かれていなかったケースで融通を利かせて付けるか、一応上の人の判断を仰ぐか、付けないかを選択するかはその人次第。 ちなみに付けず、書いてないからと言い張った場合、面倒くさい奴とみなされて仕事場から叩き出される可能性もあることを考慮すること。
客先とかユーザー先とかに提出する成果物や後々他の誰かが見るようなものでなければ正直どうでもいい。 個人で作って試す程度のものであればどう組もうがその人の勝手。 そういうときにやっておけばそうでないものを作成したときに癖になっていて忘れない程度のメリットはあるがその程度。
動作を理解したうえで やる/やらない を自分できめたならそれでいい 問題が起きて困るのは理解していない初心者だろうしね
正しい動作を理解しているなら自力で対応できるよでしょ
VBA初心者ですが、任意のセルへ他のシートへジャンプする以下のような関数を埋め込みたいのですが、 エスケープ方法がわからずエラーが出てしまいますがどう書けばいいのでしょうか? =HYPERLINK("#シート5!A1","詳細") 「シート5」の「5」の箇所を変数「シート番号」にして異なるシートへ飛ばすように書こうとしていますが、これがまた全然うまくいきません。。 "=HYPERLINK("""#シート" & シート番号 & "!A1""","""詳細""")" 説明サイトで見た感じでは↑このように書けばいいとなってましたがエラーになります。「!」もエスケープが必要なのでしょうか?
>>386 #もエスケープがひつようなのでしょうか? エスケープだらけでわけがわかりませんww
Sheet1.Cells(1, 1) = "=HYPERLINK(""#シート" & num & "!A1"",""詳細"")"
>>388 ありがとうございます!!エスケープは2つでいいのですね。助かりました!
>>376 for文用の変数をいちいち宣言するってなんか間抜けだしな
他は宣言するのにって場合はだらしない感じがする 抜くところがずれてるというか
>>376 > ただしforループのカウンタ変数はいちいち宣言しない
っていうのがよく分からん
Option Explicit 使うとエラーになるからそう言う人は Option Explicit 使ってないってこと?
まさかと思うがグローバル変数じゃないよね…
>>392 別に人に見せるもんじゃなきゃどう作ってもいいとは思うけど、
何かどう書いてあるか想像するだけで頭が痛ーくなりそうな感じだね。
俺はそういうの見たくはないわ。
田中信者はすぐ宣言が〜とか言い出す まーダメだあのオッサン VBAの話より上から目線で説教の方が長い位だわ
確かに、これから屁をしますっていちいち宣言しないよな。
VBAは消えるかと思ってたけど消えなかったな、PowerオートメイトでExcelはVBAでやってちょうだいって仕様になってる。 てかVBAの言語をいい加減強化してほしいよな、メモリー不足やら宣言やらガチガチすぎ
メモリーは32GB積んでるが 計算で32GBのメモリーが不足するとは思えない。 明らかに嘘だろう
うちのDELLのPCどう数えても消費メモリの計算が合わない 自宅の軽快なのとあんまりにも違いすぎる 裏で何走ってんだ
Dellって名前のついたサービス片端から止めてもまだ焼け石に水状態
>>392 それ。このスレだから上の方さがしてこい
訳「じじいなんでコロナワクチンの順番が回って来たので行ってきます。その3週間後にも休むつもりです。でもその前にアナフィラキシーショックや脳卒中や心筋梗塞で死ぬかも知れません」
ゲーム会社とかなら一人プログラマーが欠けた所で代わりはいくらでもいるだろうけど VBAを使ってる現場は 周りは誰も使えなくて そいつが抜けた引き継ぎ不能、効率ガタ落ちの地獄になりそう とかいうイメージ
youtubeの某チャンネルでもそんな話あったな 便利に使ってたくせに開発できるやつが辞めたら誰も直せなくて 「余計なことしてくれるから」とほざく上司
まあ引き継ぎ時にはしっかり周りに合わせてファイルのレベルを下げましょうね
>>407 いんや
ゲーム会社ってデザイナーとか多いけど
普通プログラマーって実はそんなにいないんだよ。
チーフ、こっちの業界ではリーダーだね。
そのレベルの人が辞めたらそのゲームはぽしゃるぐらいのこともあり得るし実際あるんだよ。
いわゆる属人化ってやつ? マクロはそうなりやすいよね
うちの会社だとそうなることは目に見えてるから 俺がいなくなることを見越して、可能な限りをシート上で設定できるようにしてる こういう事をしても、設定の仕方を理解しようとする人がいなければ終わるんだけど まぁそうなりつつあるが、俺はヤレルだけやった
動けば何でもいいんだよ おれは毎日残業して仕事してるぞ、 ただしその仕事内容は数時間かけて右の表から左の表へ1セルずつコピペを手でひたすら繰り返しやってるだけて奴よりはね。
引き継ぐ側からすると 大体の詳細設計残しておいて貰えればどういう動きすんのか分かるしまぁ大丈夫だよ。 プログラムもキチンと書いてあるならヘッダ部分のモジュールコメントと関数コメントしか基本要らない。 何か深い意味合いが有って特殊なことをやってるところだけ何のためにやっているか書いといてくれれば。 けど残念ながら大概仕事場から去るような人は意味もなく1関数に何十行にも渡るコード書いてたり、コメントに何のためにやってるかではなく、何をやってるかを書いている人の方が多い 何をやってるかなんてコード見りゃ分かるしそんなコメント要らない。 そしてよく分からないことやってる部分は概ね何らかしらの経緯をへてそうなっているからそう言うのをコメントに残して置いて欲しい。
VBAわかる人材が複数いるようなところは楽そうでいいね
>>416 ボタンくっつけて押せばまず走るのは
関数とかメソッドなんだけど大丈夫?
関数はプロパーが部長の承認をもらい予算を計上して稟議の上作成する 派遣がやるのは100年早い。
>>420 何やよう分からんけど
普通ツールやシステム組むときって
要件定義、基本設計、詳細設計、コーディング、UT、IT、ST、UAT及びレビューや戻り等の何か有ったときの余裕部分を持たせたものの工数を算出して
そこから金額的な見積もりを算出して予算を決めるもんじゃないの?
そう考えると「コーディング部分は派遣にやらせてはいけない」となるとVBAを出来る人材として派遣を雇った場合、どこを任せるのかな?
関数部分って言うからEXCELのガワでも作らせるのかな?
そんなのコーディングの中で一々分けて工数立ててんの?
大変だねぇ。
なぜだ? 部署全員、Excelのエキスパートで固めるとどうなる? 最強だろ?
EXCELのツールごときに予算取れんと一蹴 ホント日本て効率化の基礎すらないよね
そもそも政府からして 大金かけて中抜きしてゴミみたいなシステム作り上げるからな
全員が田中の爺さんみたいになる必要なんか無いんだよ かえって喧嘩になるわ
最近365のインスコデフォが64Bitなのか知らんが やたら64Bit入れてるとこ多くてAPIの宣言で苦労するわw
官公庁や地方の役所は excel 禁止にするべきだと思う マイナンバーと一緒にコピペしたゴミファイル対象に存在してそう
>>429 822 名無し~3.EXE sage 2021/06/16(水) 09:36:00.33 ID:mfWEfGUc
https://support.microsoft.com/ja-jp/office/2dee7807-8f95-4d0c-b5fe-6c6f49b8d261?ui=ja-jp& ;rs=ja-jp&ad=jp
>インストール プロセスを始める前に、明示的に 32 ビット版を選択しなければ、64 ビット版の Office が自動的にインストールされます。
826 名無し~3.EXE sage 2021/06/16(水) 10:36:08.09 ID:mfWEfGUc
64ビット版Office
Wordファイルをフォルダから選択して開く方法がわからないので教えてください Documents.open filename:=.selectedItems(1) でエラーになってしまいます Dim myFD As FileDialog Dim myFolderPath As String My folderPath ="C:\Users\ユーザ名\Desktop\test" Set myFD = Application.FileDialog(msoFileDialogFilePicker) With myFD .Title = "Wordファイルを選択してください" AllowMultiSelect = False With .Filters .Clear .Add "すべてのWordファイル", "*.doc; *.docx" End With .initialFileName = myFolderPath If .Show = -1 Then Documents.Open FileName:=.SelectedItems(1) End If .Filters.Clear End With Set myFD = Nothing End Sub
>>415 「リーダブルコード」の丸写し?
何をやってるかはコード見りゃわかるだろって、それが
わからないからコメントって概念があるんだろ。
>>432 とりあえず見つけた間違いが2箇所だけど、これで動くかどうかまでは未検証
正 MyfolderPath = "C:\Users\ユーザ名\Desktop\test"
誤 My folderPath = "C:\Users\ユーザ名\Desktop\test"
正 .AllowMultiSelect = False
誤 AllowMultiSelect = False
>>432 >Documents.open filename:=.selectedItems(1) でエラーになってしまいます
..selectedItems(1) の部分をpath付きでファイル名直接指定してみ
あとエラーの内容書かないで動かないとか言ってんじゃねーよ
>>433 >何をやってるかはコード見りゃわかるだろって、それが
>わからないからコメントって概念があるんだろ。
別に書いてあっても「親切な人だなぁ」とは思うけどきちんと単一責任原則に沿って書かれていればひとつひとつの関数やメソッドは基本そんなに長くなるもんじゃなし、ヘッダコメントに「こんなことやってます」的なことが書かれていれば必要ないよ
コードに対する読解力がないのか
コード書いてる奴が可読性低いコード書いてるのか知らないけど
自分とこの仕事場の能力の低さを棚に上げて俺に言われても困る
>>432 > Documents.open filename:=.selectedItems(1) でエラーになってしまいます
エラーメッセージを書けよ…
あとそこにブレークポイント掛けて、debug.print myFD.selectedItems(1)
ってやってみて
>>434 >>435
レスありがとうございます
エラーは実行時エラー429
ActiveXコンポーネントはオブジェクトを作成 できません です。
>>437 外にいるので後で確認します
Wordをファイル指定なら開けるのですがダイアログボックスのフォルダからファイルを選択して開くのは難しいんでしょうか
>>433 >>415 が言ってるのは極端な例だと
i = i + 1 ' i を1つ増やす
みたいな奴のことだろ
そんなん普通はincとdecを作るだろ Sub inc(ByRef i) '1増やす i = i + 1 End Sub Sub dec(ByRef i) '1減らす i = i - 1 End Sub
>>441 普通?
そんなのみたこともないけど、それを作るメリットは?
>>441 forループできるのにそれする意味は?
リーダブルコードはコードの要約よりも、意図とか疑問点とか全体としての位置付けとかを書くといいぞって主旨だった気がするが
>>446 >>441 のことを言ってるのか?
ネタならもう少し面白い奴にしてくれ
>>432 >>432 参考にしていると思われるサイト
https://ameblo.jp/gidgeerock/entry-12059401800.html 上記に書かれているのは Word用のマクロが書かれているので
そのままでは Excelのマクロとしては実行できません
参照設定とかオブジェクトとか指定する必要があるのでExcelで動かすならExcel用のマクロを
見つけて参考にしてください
エクセルで何故か散布図の最大値が35になってしまうんだけどどうすればいいのかな?
エクセルで何故か散布図の最大値が35になってしまうんだけどどうすればいいのかな?
選択したフォルダの絶対パスを取得したいと考えているのですが、下記のフォルダ選択を実行すると Dim shell As Object Dim p As Object Set shell = CreateObject("Shell.Application") p = shell.BrowseForFolder(&O0, "フォルダを選択してください", &H1 + &H10, "C:\") オブジェクト変数がセットされていないか、Withブロックがセットさせてないとエラーが出ます。 型がオブジェクトにするといけないのでしょうか?
Excel板で、勉強するならよねさんかインストラクターのネタ帳がオススメと言われましたが他にオススメありますか?
>>439 ああ、なるほどw
それなら俺も「わかるわ。そんなもん!!」と言いたくなるな。
いや、iが数値型とは限らんぞ? 文字列だったらどうする
ところで俺はbooleanやbyteでセコセコメモリ稼いでるんだが これ今のPCでやる意味あるんかな
まあ処理内容によるけど、ほぼ無意味 巨大な配列とか数億回ループとかやるとさすがに差が出てくる
オフィス365でデーターを保存したときにウインドウの上のバーの箇所のタイトルに 「ファイル名+保存しました・・」って表示になるけど、 これ出さないように出来ないのかな? ウインドウのタイトルが変わるとRPAが誤作動をおこすので いらない機能をつけるなよといつも思います。
コンピュータとか最後の長音を省略する文化が浸透しすぎて勘違いしたお爺ちゃん達がメールをメイルって書き始めてから数年が経ちました
VBE使いにくいです。 皆さんは何か別のものを 使っていますか?
一晩寝たら意外と簡単にプログラム書ける不思議 昨日あんなに悩んだのに
おぢーさん達はWordの事を「ワアド」と発音するね
これって何だったっけ? 確か昔は変数に持たせられる文字列数に制限があって末尾の棒線を取って記載するのが流行って今に至ってるって話の奴だっけ? まぁ何かデータとかメモリとか書くのが当たり前になっちゃってるし俺もそう書くけど 別にどっちでもいいんじゃないの? むしろ今はそんな制限殆どないんだし、最近の人の方が末尾に棒線付けて書いてるかもね。
>>480 こういう英語のわからない馬鹿は黙ってろよ
せめて変数のネーミングセンスでマウントとってください
マイクロソフトが周辺機器メーカーも巻き込んで表記ルールを作っている
基本的には長音歓迎派なんだけど、コンパイラとかドライバを伸ばすのはちょっと抵抗ある。慣れなんだろうけど。
JIS Z 8301:2011 規格票の様式及び作成方法
https://kikakurui.com/z8/Z8301-2011-01.html p.61
G.6.2.2 英語の語尾に対応する長音符号の扱い
英語の語尾に対応する長音符号の扱いは,通常,次による。
なお,英語の語末の -er,-or,-ar などは,ア列の長音とし,長音符号を用いて表すものに当たるとみなす。
a)専門分野の用語の表記による。
注記 学術用語においては,原語(特に英語)のつづりの終わりの -er,-or,-ar などを仮名書きにする場合に,
長音符号を付けるか,付けないかについて厳格に一定にすることは困難であると認め,
各用語集の表記をそれぞれの専門分野の標準とするが,
長音符号は,用いても略しても誤りでないことにしている。
b)規格の用語及び学術用語にない用語の語尾に付ける長音符号は,表 G.3 による。
表 G.3?外来語の表記に語尾の長音符号を省く場合の原則
a) その言葉が 3 音以上の場合には,語尾に長音符号を付けない。
エレベータ(elevator)
b) その言葉が 2 音以下の場合には,語尾に長音符号を付ける。
カー(car),カバー(cover)
c) 複合の語は,それぞれの成分語について,上記 a)又は b)を適用する。
モータカー(motor car)
d) 上記 a)?c)による場合で,
長音符号を書き表す音(例 1),
はねる音(例 2),
及びつまる音(例 3)は,それぞれ 1 音と認め,
よう(拗)音(例 4)は1音と認めない。
1 テーパ(taper)
2 ダンパ(damper)
3 ニッパ(nipper)
4 シャワー(shower)
共有フォルダのmdbファイルにADOでアクセスしてます 一人だとconnectionのcloseは、すんなり行きます だけど、誰かが同じようにadoでconnectionをopenしてるときに、connectionのcloseをかけると30秒くらい止まります どしたら解決できますん?
そういう時はコーヒーを沸かして飲んでみよう 飲み終わってから画面を見ると、なんともう終わってるじゃないか!
待て待て、>510本人が良くても他に開いてる誰かが大人しくコーヒー淹れて飲むかは分からんぞ ここは待ち時間の間に詰将棋でも表示する方が良いのではないだろうか
普通に考えて、何もなければクローズに30秒もかかるわけないし なんらかのエラーが出てるかファイル共有サーバに問題があるかだろ ちょっと試したけど実際そんなことにはならん 詳しい環境もわからんしこれ以上は何とも言えんわな 詰将棋のルールわからん人もいるだろうからおとなしく待てとしか
「誰かが入ってるとき」ってのが引っかかるけどACCESSでしょ? 排他やら何やらもあるかも知れんけど、こういうときはまず最初に疑うのはそのACCESSファイルが最適化されているかでしょ? とりあえず閉じるときに最適化ロジックが入っているかと、一回最適化して同じように確認してみたら?
詰将棋のルールーがわからない人にはルールーを表示させればすむけど 1日に何杯もコーヒーのむほうが大変だと思うぞ
データベースへのアクセスは1日3回までってルールにしとけばいい
サンキューお前ら VBAで詰将棋作ってみたくなったわ
ルールーって言ったらルールー・アムールが真っ先に出てくるわ
モーグリの人形かかえたFF10のやつしか思いつかない
Publicで多次元Variant型の配列「ar」を宣言して、1つ目のプロシージャでRangeを代入します。 そして、2つ目のプロシージャで中身を全て入れ替えたいので、 ReDim ar(**,**)で改めて再定義した場合、arはPublicのままなのでしょうか?
再定義のアーチをくぐって 宝島が見えるころ 何も失わずに同じでいられると思う? あなたの変数は誰かと腰を振ってるわ
VBAとはちょっとズレるんですが、数万行のデータのシートが複数はいっているExcelで 他の列から複数、Vlookupで参照されているA列の値を書き換えたりすると、8コアのCPUが10秒以上100%に貼り付いてフリーズしたみたいになります 一箇所のセルが変わると他の全部も再計算するんでしょうか
>>535 自動計算解除して変えたいセルの値全て変えてから
自動計算を有効にしましょう
もうそのレベルだと計算式消して全部マクロのほうが良さそう
>>535 そりゃvlookupで参照されてたら変化する可能性があるから検索し直すしかないわな
>>535 うちに何でもA:Aとかやっちゃう人いて、無駄に重くなってるわ。
>>540 多分、テーブルでindex(match())にするのが吉
テーブルはいいね、Excelの中では最適化されてるから無駄が少ない
時代はテーブルかい いまだにセルをオサレにする機能だと思い込んでいる人いるがな
時代もなにもここはExcel2003で時が止まっていると聞いたから
そんなかわいそうな事言うなよ 今VBAを勉強してるジジババは、エクセル作業を自動化できる最新技術だと思って講習会通ってんだぞ・・・
じじいを舐めたらいかんぞ 最近のじじいはJavascriptくらいはやっとる
>>526 詰め将棋しかしたことがなく将棋を指したことがないから教えてください、打ち歩詰めは指し将棋でもルール違反なんでしょうか?
>>536 儚い即ち美しい
VIDEO ;t=119s
>>554 反則。渡辺明が羽生善治相手に「打ち歩詰めでしか詰まない」、
つまりどうしても一手緩むという状態に誘導して大逆転した将棋がある。
ちなみにその将棋は竜王戦という超賞金の高いタイトル戦7番勝負の
第4戦でそこまで羽生3連勝。勝てば初代永世竜王という称号が手に入る
特大の大一番。
そこから渡辺が4連勝して、その後も勝ちに勝ちまくって初代永世竜王を得た。
ジジイが全員VBに精通しているような書き込みだなw できる方が珍しいわ
講習会に詳しいのは行ったことがあるからだろう 爺に囲まれてあんちゃん凄いねとか言われてその気になってるとかw
VBAに講習会なんてあるんか ああいうのはやって覚えるしかないと思うんだが 聞くだけで頭に入るものなのかね
職業訓練所のパソコン教育なんかでVBAの講習とかやっているような気がする
たいがいの講習会は、ジャンルに関係なく「やった気にさせて集金する」のが目的のビジネスだぞ
新入社員の時間稼ぎ研修とテキストの販売、暇なジジババのボケ防止もある
そもそもジジババがvbaなんて覚えられるのかっていう しかもたかが講習会で
講習会程度で覚えられるジジババなら そもそも講習会なんて行かないでも 少しググったらあっという間に学習しそうな気がするし
そのジジババ様の年齢の範囲によるのでは? 50〜70歳位まではパソコン世代だからVBもバリバリやっていたのでは?
前も書いたが、その世代のジジババだれもがパソコンはあろかVBAを書けると思っているのか? 理数系ジジババならまだしも、VBA自体できる方が珍しいんだよ。 まあ確かにMS-DOS世代にはなるのかな。
今スクラッチやってるような子供らなら 余裕でマスターするのかな
じゃあ、その小学生が仕事するにあたって必要に迫られたときの話で頼む
義務教育の敗北とか言うやつがいるけど、そもそも習ったことをちゃんと覚えてるのは全体の2割以下だぞ
じゃあ今の小学生の5人に一人くらいはVBAできそうね
VBAなんて習わずとも、やる気さえありゃ誰でも出来るだろw できないやつはやる気ないだけ。
そうは言いますけどね…できない人はまじでできないらしいのよ 聞いた俺も半信半疑だけど
動作性IQと言語性IQがそれなりにあって、それなりに忍耐力があれば、かな
稀に最初から出来る奴がいるとかいないとか。 Excel初日で基本的な事すべてマスターする天才が 生まれ持った才能ってヤツですかい?
出きる奴もできない奴もいる それがどうした? 所詮他人事
右から、例えば右から4番目の位置に文字を挿入したい場合はどのようにしたら良いのでしょうか? 1.256とか.526のように右から4番目の位置に「.」を入れたいもので どなたか教えて頂けないでしょうか?
てか、それ数値として1000で除算するとかじゃだめなのか
>>580 そのように検索したら左から数えるパターンは出てくるんですけど右からのは見つからなかったんです
>>581 そうすると.526で表したいものが0.526となってしまうんです
注文が細かくて申し訳ありません
まぁいろいろやり方はあるんだろうけど ドットの左側に何があっても依存しないようにするなら 例えばこんな感じとか Sub tessssssssssss() Dim source As String Dim result As String source = "12345" result = Left(source, Len(source) - 3) & "." & Right(source, 3) MsgBox result End Sub result = Replace(source, Right(source, 3), "") & "." & Right(source, 3) でもいいし
>>579 やりたい事がいまいち分からんが
Cells(1 , Columns.Count - 4).Value = 1.256
って話なのか?
数値であることを生かすなら Sub teeeee() Dim source As Double Dim result As String source = 12345 result = Replace(CStr(source / 1000), "0.", ".") MsgBox result End Sub
あ、文字列の右から四番目ね ちゃんと読んでなかったわ 1000で割ったあと If x < 1 Then y = Right(x, Len(CStr(x)) - 1) Else y = CStr(x) End If って感じとかどうだい? xはDouble型かCurrency型、yはString型
>>578 他人事じゃねーんだよ…VBAできるやつが職場に一人しかいないんだよ
それどころか関数の初歩を扱えるやつも2人居る程度っていう
属人化一直線だろこれ
>>589 なら君が覚えればいい
ほら二人になった
>>586 579です
Replace 関数を使って何とか出来そうです
皆様ご親切に教えて頂いて有難うございました
いや、586のままだと 10.1が11に変換されそうだが問題ないのか?
>>589 お前は社長か?そういう会社で利益が出ているならお前がやればいいだけのこと
会社が傾くならできない奴を移動させるか、自分が別の会社に行くのとどっちがいいか上司と相談しろ
>>596 俺がいるうちはいいし
引き継ぎ後が地獄になるじゃん
下手すると100時間分の作業が手動になるで
後のことは知ったこっちゃないといえば知ったこっちゃないが
いやだから指示でもなんでも従いますけどね 後続は地獄だろ
結局、if関数とsubstitute 関数を併用してやりました
いいんですってば。たとえ地獄絵図が広がろうが会社が傾こうが、それは会社が負うべき責任です 義務感まで属人化すんな。下手したらお前が過労で死ぬぞ
>>576 動作102で言語137あるんだが、関数型プログラミングが
なかなか頭に入ってこない。オブジェクト指向までならすっと入る。
なので、プログラム全般に対する適性だと、他にもうひとつ
ふたつファクターがあるような気がする。
>>602 そこまで乖離があると自分の中に天才と凡人が同居していて
モヤモヤしそうな…
VBAをバリバリ使う職場って相当高度で難解な表作成してるイメージ。 実際どうなの??
表じゃないものを表にしたり、その逆のために使います
勤務表の作成みたいな簡単な業務でもvba使うでしょ
>>608 実際に職場のシフト表作るのに使ったよ。ナースシフトプロブレムってやつに
なるらしい。
遺伝的アルゴリズムとかルーレットアルゴリズムとかフィッシャー・イェーツの
配列並び替えアルゴリズムとか面白かった。今ってググればなんでも出るから
すごいね。プログラマを引退して長いので驚いた。
その手の用途にはうってつけの道具だと思う。エクセルVBA。
この人と仲悪いからこの時間帯外してとか口外しずらく証跡を残せない理由によって 一瞬で破綻するのだった
>>610 別に理由は書かなくていいんだよ?
「同時に働けない」って条件だけ機械的に設定すればいいんだから
共働きの夫婦なんかでもよくあることだし
その通りです。 「新人ばかりの時間帯や日があってはいけない」みたいな条件の一つに 「Aさんと
ごめん。途中送信。 「AさんとBさんはかぶらない」みたいな条件をつける感じです。
まとめ とにかくよ、高い金払って講習会とかセミナー行くならここに質問した方が無料で教えてくれるし的確だぜ。 良い情報は無料で手に入る
世の中のプロマネってWBS書くときにナーススケジューリングの解決ソフト使ってるの?
>>615 プロジェクトのタスクというのは担当者や委託先業者がいつ作業しようがいつ寝ようが期間内に終わればいいだけだから厳密なシフトなんか必要ないし、
作業の属人性や依存性も考慮しなければならないのでナーススケジューリング問題ではない
>>606 VBAに?頼るようなとこは、明らかに無意味な業務を排除できずに小手先の自動化で誤魔化している低レベルな職場が多いよ
自動化する前に、そもそもその成果物が本当に必要かを考えたほうがいい
>>617 VBAに頼ること自体は別に程度が低いことにはならないよ
むしろ中身は以前ならそれで普通にシステム作ってた旧VB6とほぼ一緒な訳だから表計算とかをDBから読んで加工してEXCELに出す程度のものであればVBAだけで十分事足りる
統合システムとかWEBとか
VBAでするべきではないものは確かに存在するけどその辺はケースバイケースで決めるべきで、VBAだから程度が低いことにはならない
趣味でVBAなんて使うやつそんな居らんやろ 性能低いし
>>621 単純にVBAの動作速度が遅いというのであれば
ネィティブコードにコンパイルしないJavaも遅いし、ILすら実行時に変換して行くJavascriptやPythonやVBSなんかも遅いことになるけどな
>>599 たぶん後続は地獄にならないよ
内容が理解できないシステムを残す方が迷惑だろう
>>621 うん。システム屋的にはありえないくらい遅いw
自分で耐えられなくなってオンメモリに動作するように
リファクタリングした。
でも、シフト表作成みたいな月に1回動けばオッケー
的システムだとそれはあまり問題じゃないんだなってのも
学んだよ。
1回の処理で1万パターンくらいの表作って戦い合わせて
最終的な勝者を出すんだけど、1回に10分掛かったって
1時間もあれば上に6パターンの表を出せる。
あとは手動で微調整すれば今までの数倍の効率で組め
ちゃう。
「終わってる言語」のVBAは、現場では終わってない。
個人的にはJavaScriptに早く置き換わってくれなんだけど。
別に内容がわからないシステムは残らんでいいけど じゃあ代わりになにか作れるかって言ったら作れないわけで単純に作業量が死ぬほど増えるんだよ ましてやエクセルの関数すらまともに扱えないんじゃそりゃ地獄になるに決まってる
>>626 自分の部下が仕事ができないなら自分の責任になるだろう
職場に仕事のできない奴が何人いようがそいつの上司が判断することで口出すことじゃない
仕事できない奴の上司に管理能力がないと指摘したところで良いことない VBAができなくても営業、法律、経営とかで必要な人材かもしれんだろ
職場の人間関係が悪化して会社辞める人ってそんな感じなんだろうなって思う
>>625 ならないよ
そもそもJavascriptはWeb用の言語だ
だから既にWeb版EXCELはJavascriptを
使うようになっているし最近では
マクロの自動生成も公開されている
ただ、Javascriptを使うだけでは
先程言ったようにScript言語なので
Javascript → 中間言語 → ネイティブコードと
変換されるため然程の高速化は
見込めないどころか遅くなる可能性すらある
集約や関数の持ち回りに強いjQueryを
上手くに使いこなしてどうか、といった
レベルになるだろう
実行速度も開発効率も環境の問題であって言語の問題じゃないけどな
同じことをしても言語によって速度差はあるけどな 開発効率は開発環境の問題だが、開発環境は言語によってだいたいきまるけどな まあつまり、適材適所なんだが 趣味のVBAにどんだけのものを求めるんだ? いまどきのマシンスペックでVBAが遅くて使いものにならんとしたら、よっぽど向いてない処理をさせたか どんな言語でも使いものにならん速度しか出ないコードしか書けないかだろ
某動画のコメント欄とか見ていると、プログラマーならVBAなんて楽勝でマスターするとか書いてあるけど、Excelのローカルルール知らないと無理だと思ったわ
言語の学習なんて、どれもライブラリとローカルルールを覚えるのがメインだぞ
ひろゆきの動画でVBAに触れていたからさ 信者のコメントが知ったかばっかでドン引きしたんだよ 「VBAはプログラミングの中で1番簡単で誰でもできる」とか書き込みしてるヤツいたから。
VBAはプログラミングの中で1番簡単で誰でもできると思うよ
そうだな 言語という枠に囚われなければ 最近発売された任天堂の ナビつきなんちゃらとかの方が 簡単かも知れないな
現役で広く使われてる言語の中では、VBAはかなり簡単な方だと俺も思うよ この場合の簡単というのは、敷居が低いって意味もある ネットでも書店でも初心者向けの情報があふれてる 最低限の開発環境が用意されてて、書いたらすぐ実行して結果が確認できる 変数の型も自由だからつまづきにくい
HelloWorld出すまでの敷居はExcel買うだけ
問題は 「VBAが簡単か」より「VBAより簡単で誰にでもできる言語があるか」じゃないかな
>>642 言語という枠に括られるのであれば恐らく無い。
JavascriptはwebだからどうしてもHTMLやCSS等の知識が必要になるし
Pythonもwebで使うなら同様、そうでなければWPFの知識が必要になる
C#やVB.NetはObject指向言語でそもそもが難しい。
javaも色々なところで使われているもののObject指向言語な上に自分でフレームワークを構築したりしなければいけないとなったらもう論外。
C、C++はポインタの概念で向いてない人はすぐはねられる。Rubyは年収が安いのでこれも論外。
>>640 敷居が低いのは大きな利点と思う。
入出力はシートに任せて、処理の部分だけ考えればいい。
VBだけで作ろうとしたら、2次元の表の構成から考えなければならない。
学歴無いとVBAは無理と聞いたんですけど?? どうなんですか? 真面目に
>>649 VBA自体は学歴は関係有りません
勉強すればその辺にいる小学生でも扱うことは出来るでしょう。
ただその性質上、企業等で扱う場合は業務的な知識を必要とする場合が多々ありますので、その知識は必要です。
>>649 大卒だと英語読めるだろうから覚えは早いと思う
おれは学がないから最初はcurrentregionでも何じゃこりゃ状態
今や大学の半数がFランだぞ 英語が読めるやつなんて大卒の半分もいない
>>652 なななな・・・何時代の常識でしょうか?
大卒がエリートだったのは昭和40年代まで 学生運動が広まったあたりで、学生の本文は学問であることを忘れたやつが増えて、大学は遊びに行く場所になってしまった
ああ、そうでした 学生みんながみんなじゃないけど、今はあまりパソコン自体使わないでスマホでレポート書いてるとも聞きました。 WordやExcelに触れない学生が多いとか
スマホでレポート書いてる様な連中はまともなところには就職できないだろ
群論を学べば四則演算の見方が変わる むしろ世界観が変わる
加算減算乗算はわかりやすいのに なぜ加算をくりかえすだけの乗算の逆の除算で いきなりわけのわからん世界がでてくるんだ?
除算はまだ序の口 実数直線だけの世界 複素平面やリーマン面まで知れば世界はさらに広がる
>>663 わかる
vba → プログラミング → 関数型言語 → 圏論 → 群論 ってきて完全に数学の世界観にハマってる
分かんないながらも最近ずっとヨビノリ見てるわ
周りの人間は、仕事で必要な知識だけ身につければおkと言われた。 マニアックな事までマスターしなくて良いと
>>667 お前の職場内での事ならそれでいいんじゃね
仕事上のプログラミングなんて 可読性と汎用性が最重要 研究してるなら全部度外視で掘り下げる
最近ソルバーっていうの覚えたんだが、これ凄いな ゴミみたいなマクロ作ってないで、最初からこれ使ってればよかったわ 最近のエクセルはデータの読み込みとかピボットとか格段に使いやすくなってるし、 言語機能的な問題じゃなくて役割的な意味でVBA使う必要がドンドンなくなってきてると感じる
>>672 最近のエクセルって・・・
ピボットとかデータ読み込みとか何年前から付いてた機能だと思ってるの?
この人スピルとかxLookupとかifsとか全く知らなそう
ここにいる人達はみんなそういうのとっくに知ってる上でVBAやってると思うよ
ピボットはかなり前だけど、XLOOKUPとかはわりと最近じゃない? 365が出てからだよね?
XLOOKUP は名前は知ってたけどスピル知らんかったw
>>666 そらそうと、関数型言語 -> 圏論 -> 群論ってつながっちゃってるのかよ。
まさに今「圏論ってどういうことなんだろう」状態だけど、群論と聞くと怯む。
どっちがマウント取るとかどうでも良い 本質的に関係の無い話題で無駄レスしまくって スレを流したり話題をはぐらかしたりする体質は遺憾
ちょっと新しい機能の話をするとすぐマウントとかどんだけ新機能に怯えてるジジイなんだよ EXCEL94でも使ってろバーカバーカ
だってMS-DOS世代が大半なんでしょ? ロータス123をバリバリ使っていた説明
ロータスいちにさん? ロータスわんつーすりー? ロータスわんつーさん?
あまり人の知らない昨日使うとずっとメンテすることになるから程々がいいよ
引き継ぎとか考えると、配列で短縮される時間よりもセル操作の方がメンテにかかる時間が短くてお得
ロタースいちにさんで合ってるよ さっき爺ちゃんに聞いた
テーブル辺りまで使えていれば、Excelに関しては一応okって感じでよくない? 世間一般の中級者も大体それくらいでしょ。
>>676 使いやすくなってるって「データの読み込みとかピボットとか」に係ってるんだが
ソルバーの存在を知らなかったのは素直に無知だったと思うし、
挙げられた機能や関数は偶然知ってたが知らなくてもおかしくないと思う。
これからもエクセルに限らず発見はあると思うし見つけていきたいね。
>>680 圏論は初心者向け解説も少ないし、解説動画も豊富な群論から先に勉強してる感じ
Haskellの数学的意味の理解が取りあえずの目的だから、
群論→圏って進むのがいいのかなと思った
たまにはマルチプランのことも思い出してあげてください
Lotus 1-2-3は、MS-DOS時代のIBM PC/AT互換機の販売促進にもつながった。 あのマクロは変数宣言不要で、とっつきやすかった (より本格的なLotus Scriptもあった)。 16bitでもそれなりに計算速かった。 が、MSがそこで奮起したから今日のExcelがあるわけで。 1-2-3がWindows対応に遅れたこともあったが。 で、Excelに負けたLotusは2000年代に入って、 主力商品をグループウェアのLotus Notesにシフト。 そのNotesも、サイポウズだとか後発グループウェアに駆逐されて 今は見る影もない。
一太郎はどうだ? 当時、一太郎とLotas123を選んだオレは負け組か? いや日本ではWordやExcelより人気だったはず。
当時はOSもWindowsとMacではWindowsのほうが優勢だったけど今よりははるかにMacのシェアは大きかったな。
ロータスもエクセルも関数だけならそんなに書き方変わらんだろ 知らんけど
>>699 wikiながら歴史を紐解くと、
1-2-3が出たのが1983年。
Excelは当初、MS-DOSベースで開発してたが、
LotusがMac向けにJazzってのを開発していることがわかって、
対抗してMac版Excelを出したのが1985年。
Windows版を出したのが1987年だった模様。
棲み分けにはならず、1-2-3もMac版を出すには出した。
GUI対応がアレで売れんかったけど。
あの頃はハード普及期がようやく立ち上がるか?の頃だったので、
それに引きずられたけど、
今はソフト/アプリはハード(OS)依存ではなく、
Mac/Win両方対応するのが当たり前になっちゃった。
蛇足:
1人1台になるのは大企業でもWindows95になってから。
Win3.1の頃はまだ「端末室」という名のブースで共用。
富士通のEPOCALCなんてのも、5インチフロッピー運用でまだ残ってた。
1人1台にするときは現場の総務課だったので、
事務室の床全面をフリーアクセスでかさ上げ・二重床にして、
電源とLANケーブル汗だくで這わせてコネクタ付けて、
ようやくHUBに接続したら、
「ヤバっ。ループさせちゃった・・・」とかバカやってた。
スレチすまそ
Excelは他人と技術を競い合うアプリでしょ今は。 だってExcel競技会みたいのがあったじゃん昔は。 上位入賞者はみんなの度肝を抜くテクニシャンばかり どうしたらあんな発想ができるのか不思議だ
VBAの大会だと言うならただのプログラミング大会でエクセルとか半分関係なくなるし そうじゃなくて関数限定というなら VBAスレ民があんな非効率的な方法に興味があるのが疑問 関数足しただけ無駄に重くなるし 使う利点あるの?
ExcelでVBAを使わないでドラクエ3を再現してみた
VIDEO VBA使えばもっと簡単だろうね
>>710 どうせ何かアドオンでも使って他の言語でも使って作ってるんだろ?
と、思ったらガチでマジの奴だった
こいつヤベーわ
ワークシート関数でもこんなに速度出るんだな 気付きだわ
関数のメリット Ctrl Zでやり直しが効く マクロ有効にする必要がないので他人でも扱いやすい 関数でやれる事なら関数派だわ
スピルとかいう新機能もvbaでだいたい代用できるし
基本、VBAより数式の方が処理が速いので数式を多用するのは悪いことではない。 が、今回のように散布図に絵を仕込んだり循環参を使うような持って回った方式であればVBAの方がシンプルに書けるし恐らく処理も速いだろうな。 EXCELもVBAもまだまだ奥が深いということだな。
関数はみずらいのがねえ いっそコメントみたいに表示されればいいのに
VBAで関数文字列作ってセルに入れて計算結果を得るとかあるあるだな VBAでセルをループ処理するより速い時に使う 関数のままだとアレルギー起こす人もいるから 計算結果で上書きして関数を隠蔽したりもする
モチベーション維持のために背景にエロ画像表示してるよ
1つのプロシージャーのend sub まで実行した後に 次のプローシージャーを実行させる方法は無いのでしょうか? エンドサブ前に名前を書いて連続実行させると動かなくなりますが バラで実行すると動くので困っています。
sub ひとまとめ call プログラム1 call プログラム2 call プログラム3 end sub
俺の予想では728でも動かん 別のプロシージャに影響するのはオブジェクトの解放とかグローバル変数あたりか?
>>728 コレでいいと思う
てか、これが理想だと思う
まあEnd Subの直前で次をCallよりは728のがいいけど、とにかくまずはバグを潰さないと
>728 >729 >730 >731 >732 >733 >734 >735 >736 >737 >738 なるほど>728のような書き方の方がよいのですね 色々とありがとうございます、オブジェクトの解放あたりが問題なのでしょうが 考えてみればプロシージャをコールするのではなく末尾に全コードべた書きすると問題の切り分けが出来そうな気しました
>>739 複数アンカは最初だけ>>付けて、数字だけを , で区切ればいいのよん
連続なら 最初の番号-最後の番号 で
ブランクなしで
そう言えば昔適当なプロシージャをexit subで中断させると、何故か呼び出し元のモードレスフォームが解放されて処理が止まる事あったな 原因は結局分からなかったが、デフォルトインスタンス(load関数でいきなり読み込める方)じゃなくてnew演算子でインスタンス化したら発生しなくなったよ
社員がVBAマクロを作成する事はできなくするけど、情シス等で作成されたVBAマクロは実行可能にするexcel設定は可能ですか?
サーバー上のExcelファイルを、xlsx形式以外は1日1回Deleteする… なんてのがあるだろうけど絶対生産性落ちる地獄
そんな原始的な運用しなくても、Excelのマクロはグループポリシーで禁止できる システム部の配布した業務用マクロは許可して自作マクロだけ禁止も可能
厳密に言うと、作成まで禁止するのは不可能 実行ができなくなるだけ
saveasで保存したブックを指定する方法はありますか? 元ブックをsaveasで保存して、保存したブックの不要箇所を削除して閉じるの動作を元ファイルが終了するまで繰り返すマクロを作れないか試してます。 saveasで作ったブックを指定する術がわからず、つんでおります。
>>753 パスとファイル名を変数かセルに覚えとく
初めて質問させていただきます。 画像(.jpg)と数値のデータ(.csv)を別々に保存しているのですが、ひとつのExcelファイルにまとめたいです。 csvファイルの右隣に対応するjpgファイルを貼り付けることが出来るコードを教えて頂きたいです。 出来れば繰り返しできるようにしたいのでよろしくお願いします。
>>755 要件が不明確
細かく質問してもいいけど
最終的にExcel上でどういう表示になってほしいのか、サンプルデータで作成して
ここにスクリーンショット貼ってもらったほうが多分早い
csvファイルの右隣って何だよ… 対応するjpgってのも曖昧だし。
シートにcsvの中身出力してその右隣に対応する画像ファイル貼りたいって話じゃないの?
このスレでいうのも何だけど、VBAってそんなにありがたいかな? 個人的には、できる限りVBAを使わないというのは、特に企業では合理的な選択肢だと思うけど。 どうしても必要でVBAを使うことはあるけれど、VBAを使った時点でそのExcelファイルは二等市民的というか、もはやまとも扱いは受けられないものだと思っている。社外的にマクロ付きファイルの受け渡しをするなんてまともな会社ならありえないし、ちょっと大きめの会社なら部署間でもでもそうでしょ。 MicrosoftがExcel本体の機能を強化して、できるだけVBAを使う機会を減らそうとしているのは基本的に正当な方向性だと思うけどなぁ……。
xlsmはローカルにしか保存してないな 第三者に使わせて不具合起きても責任取れん
東証一部上場企業の品質保証部門だけど割りとなんでもかんでも業務の自動化効率化にVBA使おうとするぞ 1万ステップのツール作成なんか日常茶飯事
関数程度で済む作業だけならいいんだけどどうあがいても無理な作業があるから
>>761 言っていることがよく分からないな。
そもそも会社から外に出てはいけない内容が載っていた時点で社外秘だ。載せてはいけない内容をVBAに拘る理由がよく分からん。
そういや、そもそも関数って汚くなるよね 大量の処理用の関数列のなんと醜いことか 関数使って並び替えするだけで大騒ぎだ
>>761 マクロの入ったファイル自体を受け渡すのではなくて、マクロを使って動的生成されたxlsxファイルを受け渡すような用途にも使ってるよ。
Officeのマクロだからといって文書ファイルの生成に限らず、自分が普段パソコンを使って行っている繰り返し作業等もExcelマクロでツール化できるのがいいところ。
C#等でツール作成してもいいけど、Excelのほうが手軽なことが多い。
>>770 どうすんだろね?引継ぎ先もないからメンテナンスされないまま使い続けて使い物にならなくなってから大慌てするんかね?いなくなってから呼び出されんのだけは勘弁して欲しいんだがなぁ
事務員のオレオレマクロはともかく情シスがVBAでツール作ってるとか信じられん テストとか保守とかどうしてるのさ
しない 必要に応じて各人で作り検証は最終成果物に対して行う
ウチの一部上場企業のソレだわ データをプリント、その数値を各フォーマットへ手入力とかザラにあるわ VBAで入力&自動化ツールをいつくか作って感謝されたが、元データや出力の仕様変更があれば手直ししなければいけない IT途上国だと心底思うわ
とおもったが ちょっとまえまで勤務表で無意味にやらされてたわ ただのいじめだとおもう
>>755 Ruby では、CSV で、配列同士を連結すると、
require 'csv'
input_1 = <<"EOT"
1,1.1
2,2.2
EOT
input_2 = <<"EOT"
a.jpg
b.jpg
EOT
# 2次元配列
ary_1 = CSV.parse( input_1 )
ary_2 = CSV.parse( input_2 )
# 最初の配列に、後ろの配列を連結する
ary_1.zip( ary_2 ).each do |one, two|
one.push two[ 0 ]
end
# 2次元配列を、CSV 文字列に変換する
csv_str = ary_1.map( &:to_csv ).join
print csv_str
出力
1,1.1,a.jpg
2,2.2,b.jpg
エクセルのデータをプリントアウトして別のソフトに手入力させられたことある たまらず自動化した 手作業だと月20時間くらいかかるんよアホくさい
うちは逆に、明らかにVBA程度で十分な業務も何でもかんでもITベンダーに投げてシステム化された結果身動き取れなくなってるわ ちょっと業務を変えようと思えばすぐSIer案件だ それなりに金持ちな会社なのと商売の特性上IT投資が通りやすいのとで、ジャブジャブ金が出る
正直今EXCEL VBAとは全く関係ないシステムを作っているけど恐らくEXCEL VBAで全く遜色ないものが作れるのは内緒だ
あるシステムをVBAで作ることを提案したら却下されて外部に投げる事になった 他部署で似たシステムをVBAで運用してたらエクセルファイルがクラッシュして惨事になったかららしい VBAでもプロが作ってたらこんな事にはならなかったんじゃないかな多分
ウチの職場の課長はとにかくExcelの高い技術もっているヤツの評価を上げてくる 複雑な表作れるヤツは査定上がりまくり なぜか社員同士で技術を競わせる。。。 これ変わった職場なんかな?
A/Bテストとか確率統計的なのとか 背景にある仕事を無視して 複雑な表の一言で片づけてないか
特定の社員に依存してると、その人がいなくなった時に惨事になる まともな会社はちゃんと金かけて外部に作らせる
そんな金があるならVBA使える人材を雇ったほうが良くない?
いや頼むたびに金かかるんだろ 今いるやつをいくらか首にして これから雇うやつはvba使えるやつオンリーにしたほうが安くならんかね
社員1人にやらせた場合、年間500百万くらい人件費かかるんだよ
ならんよ コーディングの仕事がコンスタントに発生するわけないし、コーディングルールや担当者が変わった時の引き継ぎの方法など、ルール作りには莫大なコストがかかる プログラムが書ける人だけいてもしょうがないんだよ
別にVBAだけやらせる訳でもないし 規模にもよるんだろうけど 外部に頼んで操作性最悪のゴミプログラム作られるよりはマシだと思うけどな ゴミプログラムでずっと非効率的な入力してるやつがいてゾッとした
人事を自由にできる立場なら好きに人員配置すればいいんじゃね お前の職場の問題は職場内で解決しろよ
毎日要求する仕様が変わっていくからそれに対応するには た く さ ん いるよ
https://www.itra.co.jp/webmedia/programming_language_ranking.html こうやって見てるとVBAの年収が611万、
月に換算して大体ひとり頭51万くらい。
これに使うPCのリース料や
交通費支払いを含めてひとり頭53万くらい
見とけばいいんじゃないの?
特定のセルへのリンクは番地指定ですが、この場合にリンク先の情報をソートしてしまうと全部ずれてしまい、 出鱈目なリンクになってしまいますが ソートしてもリンクが保たれるように番地以外で指定できる方法は無いのでしょうか?
求人要項に「Excelの機能関数マクロに精通している方」と募集すれば腕自慢の人材がたくさん応募してくるはず
>>805 セルに名前をつける
Sheet1のA1のセルにhogepiyoって名前を付けたら
Sheet1.Range(″hogepiyo“)で指定可能
>>807 こんな手があったんですねぇ、勉強になりました。
ありがとうございます!
名前のリンク切れてゴミが残るので使わなくなった名前は削除忘れるなよ
教えて下さい。 名前の定義を設定したセルの値を、他のブックからセル指定ではなく定義名で参照して変数に格納したいのですが、どのような構文になりますか?
セル番地で指定するときと同じで 変数名 = WorkBooks("ブック名").WorkSheets("シート名").Range("セルの名前").Value
>>804 えっVBA使えるだけでその年収?マジで?
>>814 もちろん上下のバラつきはあるだろうけどそんなもん。
もし驚くほど自分の貰ってる給料が安いならVBAの中でもそれだけ簡単な作業なのか
あるいはそれだけ中抜きが発生していると言うことだと思うよ。
どれくらいの事ができれば600万円稼げる? 無理だろ
つまりVBAは使えないと言っといた方が給料は上がる
それは案外ある 履歴書に「VBA」ってあったら、 この人VBAにスペース割かないといけないほど技術力のアピールポイントないのかと心配になる
そうかな? Javascriptも出来てASP.NetのVB.Net、C#、 普通にCやC++、Pythonやアセンブラが経歴書に載ってたとしても俺ならVBAも書いとくよ。 EXCELやそのVBAはUTやITとかでデータの整合性を確認するのに必要不可欠だから書いてあるとそういうのも効率よく手っ取り早くやれると判断されるからね。
なんだろうな お前にとってテスト結果をエクセルにまとめるのは技術力の一つだと思ってるのかもしれないけど、 エクセルに関数打ち込んだり簡単なマクロ操作したりなんて その場で適当にググって作れるものという判断です。 仮にそれをVBAとかを駆使して美しく作っても 「おえかきのセンスがあるひとだ」「こんなのに凝ってヒマなんだな」って扱いです。
VBA使えます(※ただしEXCELに限る) って書かないと
>>822 大丈夫です。
適当にその場凌ぎにググって書いて動きゃ後はどうでもいいと思ってる人のソースはVBAに限らず一時が万事そんな感じです。
そして適当な仕事しか出来ないので給料も安く同じ現場で長続きしません。3ヶ月から半年で退場させられてしまいます。
プロパーであった場合は周りから使えない人というレッテルを貼られて辞めたり左遷されたりします。
どうでしょう。あなたもそういった考えを捨ててもう一歩先に進んでみては?
いつものRubyの人か他のどの言語やってる人か分かりませんが、わざわざ他の言語のスレに来てその言語を見下したような発言をしてマウントをとったような気になる惨めな心境ではなく、本来の自分の言語のスレでマウントが取れるようになるかも知れませんよ。
もっとも、そこまで行けば精神的に余裕が生まれるのでマウントを取ろうとも思わなくなるかも知れません。
俺は
>>822 に同意するわ
俺の経験としても、少なくとも今の会社と前職ではVBAスキルについてはだいたい
>>822 のような認識だったよ
>>824 の言いたいこともわからないでもないが、傍から見りゃそれこそ突然一方的な人格攻撃を仕掛けてマウント取ろうとしてるようにしか見えるから気を付けたほうがいいぞ
まぁVBAのスレで碌にVBAやったことない奴が適当なこと書いて煽ってるんだから何言われてもしゃーなし
ネットに転がっている野良マクロをコピペして「マクロを作った気」になっているのは最低でしょ
突然一方的か?俺には
>>822 が2行目から殴り掛かってるように見えるんだけど…
そうかなあ Webから適当にコピペして使うのって、ある程度ちゃんとしたプログラミングのバックグラウンドがないと結構難しいと思うよ 本当に能力の低い人はググってもそれを使いこなすことができず、サンプルを渡してやらないと自分で何も作れない
初心者まはまず西武労働レストランでアルバイトしてこい
みんな優しいな どこかの誰かがよその職場でEXCELマクロに四苦八苦しているとか正直どうでもいいことなのにね
>>832 どういたしまして
ただ、この手の質問が出るって事は普段は
Set MyRange = Range("名前")
みたいに省略してたりする?
上記は勝手に ActiveSheet.Range("名前") だと解釈されるので、
出来るだけオブジェクト修飾子を省略せずに書いた方が思わぬトラブルが減るよ。
毎回書くのが億劫な場合は次のようにすると楽。
' 事前に変数に参照先を割り当てる
Dim MainSheet1 As WorkSheet
Set MainSheet1 = WorkBooks("ブック名").WorkSheets("シート名")
' プロパティで定義する
Private Property Get MainSheet2() As MySheet
Set MainSheet2 = WorkBooks("ブック名").WorkSheets("シート名")
End Property
滅多にないけど、複数のエクセルを参照してる場合は
どのエクセルかを示すApplicationオブジェクトからの参照も必要になる
Set MainSheet1 = MainApplication.WorkBooks("ブック名").WorkSheets("シート名")
>>833 >上記は勝手に ActiveSheet.Range("名前") だと解釈されるので
これもよくある勘違いだが間違ってるぞ
シートモジュールのコードだと未修飾のRangeはそのシートだ
なのでActiveSheetを期待して省略してもそうならないというバグのもとになる
まあ、シート指定省略するなってことだが
>>833 SDIになって以降はオブジェクト装飾子は明示的に指定するようにしています。
少し長い処理中に他のブック触ろうとする輩がいるもんで。
>>834 確認したら確かにそうだった
訂正ありがとう
最近は仕事で自動化できる作業がなくなって達成感なくなって つまらん
給料のためじゃなくて、承認欲求のためにやっている人が職場にいる
仕事も承認欲求の一つやん なまぽでそれなりの生活できるのに
上司の許可なく勝手なことはできないないし やれといわれればやるしかない
質問スレなのは承知で愚痴りつつ質問 長文すまん 無意味な事務作業をなくしたく、 Excel初心者から必死で勉強し、中級くらいまでVBAを使えるようになった おかげで100時間級の作業を5時間以内に終わらせることができるようになったよ ついでにピボットテーブルも使えない同僚のために自動化したりもした 組織のためになったと思っていたんだよ ところが上司と同僚が変わり全くExcel知識がなく、マクロは愚かvlookupやピボットテーブルも属人化という始末 マクロが動くときは便利に使うくせに、データを壊して動かなくなったら急に切れる 俺が悪という風向きになってきた ちなみに今期の部のミッションにはDX化がある もうこれまで作ってきたマクロは共有せずに自分だけで使った方がいいかな?
そもそも使う側がvbaや関数を拒否してるんなら あなたの言う道以外にないのでは
よくvbaなんて誰でもできるって言う風潮あるけど幻想だよね 楽になる道があるのにそこに行かないで賽の河原で石を積む作業を延々してるやつなんて腐るほど居る
>>849-850 回答ありがとう
ピボットテーブルとvlookupなんてググって10分もすりゃ覚えられるのに
なんでやらないんだろう
ちなみにそれらのマニュアルも置いてあるが誰も読まない
苦手意識の強い人はもうヒステリーになっちゃうよね
ブラックボックス化させたくないので撤収させよう
恐らくあいつらは電卓まで退化する
>>848 >マクロが動くときは便利に使うくせに
便利さを知っちゃってるなら元のアナログ作業には戻れんと思うけど...
苦手な人は、ワンクリックに魂込めて仕事してる気になってるタイプが多いんだよ。 自動化で楽するなんてもってのほかだってねw なので、できなくてもやってもらいたいと頼んでくる人に限ってます。
まあ人に生殺与奪権握られるのは嫌だと思うけどね それなら今からでもvbaや関数の勉強したらどうかって思うけど なかなかそうはならないのが人間
依頼ベースで処理していけばいいのかな? とりあえず撤収して様子見かな?
>>855 あなたの職場での役割が自動化でなくて、できる力があるが故のことならそれでいいのでは?
こっちからわざわざ「やってあげようか?」なんて言う必要もないし、烏滸がましい気もしますし。
あなたが社内改善とかのそういったチームに所属するなら話は別ですが。
>>856 総務なので社内改善の要素はあります
特にDX推進を求められています
職場での役割は、自動化というかPC全般、データを与えておけばやたら早く処理をするという扱いの作業者です
また、管理表等のマスタの作成・管理もしています
結構な大切な仕事が多く、自惚れではなくルーチンワークを裏で牛耳っている扱いとなります
ただそれが課長が気に食わないようです
できればリモート環境を維持したいので牛耳りポジションでいたいのですが、なかなか調整が難しいです
ホントそう、VBAなんて楽勝なはずと言っているヤツは多分VBAやった事ないか余程の天才かのどちらかだね。 ひろゆき信者とかウザイは本気で楽勝と思い込んでるし
そこらのVBAはかなり簡単に壊せちゃうんだよな ローカルが基本だから環境にも依存しやすい そういうところがやりずらい 言語的な難易度は低いんだけどね
むしろ総務関係はvba必須だろうにね 自分たちのテリトリの中で業務指示できないのがウザいんじゃないの?
何故かVBA開発者はやたらプライドが高く周りを見下す傾向が強い 自分自身を必要以上に過剰評価している気がする
総務だと他の言語の開発環境を入れてもらえないし、 いれたところでさらなる属人化が待っているのでVBAがちょうどいいですね 中小だと特にキントーン等のツールも導入してもらえないため Excelが主戦場になります RPAやローコードツールが使えるなら、部署をかえてそちらの管理に回りたいです 自分もイキってるように見えたら申し訳ありませんが 実力がないのは自負しています ただvlookupとピボットテーブルが属人化といわれ全部嫌になっちゃった感じです
>>859 マジで一度VBAから離れて別言語習得した方がいいよ
VBAに感じてた「難しい」が実は単に機能が貧弱過ぎて面倒くさかっただけって気づくから
同じスクリプト言語のJavaScript(TypeScript)かPythonがお勧め
> また、管理表等のマスタの作成・管理もしています > 結構な大切な仕事が多く、自惚れではなくルーチンワークを裏で牛耳っている扱いとなります 自分も似たような境遇になったけど、知識が増えるにつれVBAで運用し続けることに危機感を覚えてC#に移行した リファクタリングしたくてもロクにツールがないモノの面倒を見続けるのは怖かったから (Rubberduckがあるけど、無理やりVBEを拡張しているので挙動が怪しく断念) 懸念材料の開発環境についてはVSCodeとGitさえ許可してもらえればかなり楽かつ安全に運用できる どっちも無料だしw
>>862 VBA程度って言うけど
その程度すら学べない、学ばないそれどころか関数すらまともに扱えない
そんな人間に囲まれてるんだぜ
そりゃ愚痴りたくもなる
VBAプログラマーは回りを見下す それ、どこかのトレーナーもそうだったな
プログラマーなら周りは同レベル以上に囲まれてるだろうけど vba使うような環境だとスキル差凄いだろうね 関数すら使えないやつとvbaで作業時間20分の1にするようなやつが同じ場所で働いたりするし そりゃ見下すなと言う方が無理だろ というかまじで周りは少しはエクセル勉強してほしい
>>865 自分がそれまでの習慣と違うことをやる場合、
多かれ少なかれ「必ずウザがられる」という認識を持った方がいい。
なので機能性よりも「安心してもらう、喜んでもらう」事を最優先にした方がいいよ。これはマジで重要。
例えば処理が遅くなっても進捗を細かく出すとか、
選択肢や設定項目は事前に打ち合わせして極力減らす(固定値にする)とか、
背景のイラストを自由に変えられるとか。
後、自分の会社が良かっただけかもしれないが
上司の仕事が自動化できるマクロを渡してバグにイライラされた事はあっても激怒されたことはない。
勤務外で作ったとしても会社で使う以上、
提案して承認してもらうって過程を踏む(筋を通す)ことは必要なのにソレを忘れてるか、
「無知な上司に作ってやった」目線が態度に出てる部分もあるんじゃないかな。
まあVBAや関数を拒否できる余裕があるってことは 原始的な方法でもあんまり残業が発生しないような楽な職場なんだろうね 羨ましい
>>870 だからって本当に見下しちゃったら関係は開く一方だろ
自分がエクセルを勉強したのは偶然興味を持っただけって思わないと
「勉強しろバカ!」って態度じゃ自分のストレスは発散出来ても相手は動かんよ
「マクロって役に立つだけじゃなくて作ってて楽しい」って事を伝える方法を考えた方が未来があると思う。
例えば最近任天堂からゲーム作るゲーム(?)が出たけど、
あれでちょっとプログラミングに興味持った人が周りにいたよ。
それ以前にもマリメのオートマリオで自動化やってみたい人もいたし。
俺は質問主じゃないし態度にはだしてないつもりだけどね まあ今更勉強するよう働きかけても無駄な努力で終わりそうだから俺は何も言ってないよ どうせやらんでしょうし出来ないよあいつらには
上司に無許可で総務のデータ改ざんするマクロとか勝手に作っていいのかね
会社・社会などは基本、変えたい人・変えたくない人の戦い。 だから、ウェブ系では必ず、適材適所と言う ウェブ系・ファイル操作・文字列処理なら、Ruby。 AI・機械学習なら、Python・Julia。 マイクロサービスなら、Go。 関数型なら、Elixir 適材適所ではない場合は、保守できなくなる 勉強できない人に勉強させて、体力がない人に力仕事をさせるとか、 マッチング不一致 ツール・手段を先に決めたら、ダメ。 Excel で何でもしない事 ファイル操作・文字列処理は、Rubyを使うべき。 Excelでセル操作をしないで、ファイル操作・文字列処理をする香具師が多い 目的が重要。 手段を正当化してはならない
まぁ上司はプログラムを組むためにいるんじゃなくて旗降って仕事の進め方を決めてみんなを引っ張って行く立場だからある程度仕方ない。 今後取って行く方法はいくつかあるように思えるけど、パッと思いつく方法をいくつか。 ・余計なことはせずに上司の言われたままの作業を行う。ある意味、頭使わないから楽。ツールは徹頭徹尾自分の作業の効率化のためのみに作成する。 ・ツールはシートやオブジェクトで触って良いところを除きガッチガチにロックして、入力チェックもガッチガチに行う。もちろんVBEもパスワードを掛けて自分以外は触れないようにする。代わりに操作マニュアルはキチンと作る。 いくら上司が出来ない人と言っても使う方法が分からなければ聞いてくるだろうし、使い辛ければ指摘もしてくる筈。それに対応すればVBAで作ったツールも認められるようになると思われる。 ・他の人が便利に使っている実績を更に上の上司にアピールし、この上司が使えない人だというレッテルをそこはかとなく周りの人達にはらせてしまう。 明らかに上に立つのに知識が不足していて会社の発展に妨げになると感じた場合、かつ、業務的な知識が自分の方が遥か上を行ってると見てとれた場合、その上司はあなたにとって不必要どころか害悪にしかならない。よって、常にイニシアチブを自分が握り、その上司には何もさせない方向に持って行き、最終的には部署から消えて頂く方向に持っていく。 ただしこの方法は業務、プログラムの知識が自分の方が遥かに上と見てとれる場合で、かつ自分の立場が危うくならない場合に限られる。
属人化を問題にされてるのに2つ目の方法がうまくいくはずがない
>>870 そもそも見下してしまうような人間性が問題
自分の20分の1しか作業できない人間が周りを取り囲み、vbaも関数も学ばずなんの改善も図ろうとしない どうやってこれで慈悲の心で接しろというのか
慈悲はいらんw 自分がやる事早くやってさっさと20分の1グループとおさらばするまでよ
皆さんレスありがとう
長文ですがすいません
>>867 現職では無双しているけど、仕事を専門職に変えたら恐らく底辺だとおもうので他言語も学びたいですね。
C#はUNityで勉強しておりあとpythonで簡単な機械学習ができますがもっと学んで便利にしたいです
Gitは便利そうだよね
>>871 ウザがられるというのは今回のではじめて認識した怖いものだ。気を付けるよ
総務は自分以外新しく入ってきた人たちなのでそれまでの習慣は自分が知っている
これまでの上司には確認を取って作っていたし、皆切れずに使ってくれていた。残業が減ったと喜んでくれた
だが今の環境になりウザあられたあげくExcelデータの焼き畑農業が始まった
特にこだわりはないので合わせるし修正もしているが石器時代に戻りつつある
使いやすい工夫はしておらずへっぽこプログラマーとして学んだ方がいい内容だと思うので参考にさせてもらう
>>872 当時総務は自分以外悪夢のように残業していたので(電卓、手書き、手入力当たり前)を見かねてVBAの勉強を始めた
>>873 見下しているわけではないが、ピボットテーブルとvlookupは知っててほしい
おっしゃるとおり、自分は結構Excelが好きで学んでても苦にならない運のよい人でしかない
>>879 改善案ありがとう
@は上司に指示された内容を自分だけのマクロで行おうと思っている
Aの言う通り属人化してしまうので嫌がられるかもしれません
B業務知識はほぼほぼ自分にしかないので、上司をExcel以外でもフォローすることは多いのですが気に食わないようです
自動化作業撤収を上司の上司に相談してみようかと思っています
詳しくないおじさん達はマニュアルを読まずに適当に使って思い通りにならないと生成されるファイルが提出必須のものであっても使わないって選択肢を選ぶからどんなに理解力のないアホでも分かるUIって感じにしないといけない
>>875 現場に必要なかったり使えなかったりする言語や知識でマウントとったりするほうが井の中を知らない蛙じゃね
>>875 井の中の蛙は間違ってはいないとは思う
正直自分にはプログラマーの才能はなく
エンジニア界隈に行くことは難しいと思う
恐らくVBA特化の部署等ができたら足元にも及ばんだろうし
会社・社会などは基本、変えたい人・変えたくない人の戦い。 結局、自分の人生の選択 ウェブ系では必ず、適材適所。 Linux, Dokcker, AWS と、Ruby とか適材適所の各言語。 システムと言語のプロ。SE・プログラマー 一方、Excel はSE・プログラマーじゃなくて、一般職。 一般職なのに、Excelでシステム構築運用をしようとする Linux, Dokcker, AWS, Rubyを勉強しろって、いくら言ってもしない。 むしろ、Excelできる人を雇って、関数を社内で共有して、システム構築運用しようとする 結局、考え方の相違。その会社の選択。 いくら注意しても、Excelから離れないw 手段が目的化してる。 目的から、ツール・手段を決めていない システム構築運用のプロじゃないから。 一般職が、システムを決めているから ウェブ系では適材適所で、言語がコロコロ変わる。 プロが決めているから
Web系の奴は業務設計できないよ まあちゃんと教育したら自称VBAマスターよりは使えるかもしれないけど、大抵その前に辞めちゃうんだよね このRu○y基地外は仕事したことないから知らないんだろうけど、Web系ってほとんどは受託で作るだけを担当してて「手段の目的化」の極致だぞ
>>888 Rubyは日本では給料ゴミだし
選択肢に上がることはないよ。
WebやるならJavascriptとPython、
C#とかだろうね。
データの構造が変わったり、追加削除が発生して使えなくなった古いマクロがゴミになってるの見たことある
使わないだけならまだいいが、間違ったデータが集計されていて棚卸で数合わないとか 一歩間違えば脱税とか横領とかしているように勘違いされるかも
>>891 それは日常茶飯事だね
請求明細が突然仕様が変わったりする
管理者のいない誰がつくったかわからないマクロはそこでごみになる
>>892 何でもExcelでやろうとすることの弊害やね
そこまで会社の数字的に重要な部分ならPKGソフトウェア導入やアドオン開発すべきところではないか
Excelやマクロでやっちゃいけない事もしっかり教えてあげないと なんでもやろうとする人いるから
上司の理解があればいいが、そうでない場合自分の仕事のみVBAで効率化するのがいい 他の人が数時間かけるところ数分で終わらせてあとは仕事しているフリしときゃいいんだ
皆さん真摯に話を聞いてくれてありがとう
>>896 なんか自分が思い上がっていただけな気がしてきたよ
承認欲求も少なからずあったと思う
自動化は自分で完結させるとする
YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、 基本情報処理資格、Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース 今までは、Docker Compose までが初心者用コースだったが、 最近は誰でも、Docker出来るから、 AWS Fargate, Terraform, React, Vue.js, TypeScript もやる だから、AWSのくろかわこうへいのサロンにも、入る必要がある。 今では、1年の未経験者が、10年以上のプロよりも技術力が上になってる! Railsプログラマーは、これが最低ライン 一方、一般職なんて、20年ぐらい資格に受からない爺ばっかり。 それで、プログラマー気取りw 爺らは、Linux, AWSのシステムを知らねえだろ。 新技術とか、社会で何が起こっているかすら、知らない・興味ないw
ジジババはすぐマウント取ろうとしてくる癖があるからな
5chはジジババの巣窟ですよ。 子供は他所で遊んだ方が良いですよ。
学習系のオンラインサロンって詐欺師の集金所ですよね
たった1年でそんだけ色んなモンに手を出すってどういうカリキュラムなんですかね それぞれ初級レベルの説明して、 理解できなくてもチュートリアル通りに組めば完成する何か(Web系ならTwitterクローンとか)作らされて終わりかな
そもそも量からして 教える側も言語を理解できてないだろうな
さすがに上から目線の発言が酷い そういうところウザがられるぞ
Excelできる人って何故か上から目線が多い うちの職場はそういう認識
向上心もなく劣等感の塊だから 被害妄想で上から目線とか思ってるパターンもある
みんな、組織の能力引き下げで、 悩んでんのね・・・ 昔、普及学の本読んだが、 あらたな商品の市場普及での、 アーリーアダプターだとか、 口コミの火付け役なエージェントとかの話で、 一時的な苦痛と努力を必要とする能力引き下げには あまり参考にならなかった。 啓蒙活動なのだろうか? 業務命令でないと動かない?
>>906 所詮VBA使いなんてその他大勢のExcelユーザーと同じ土俵にいる存在だからね
バリバリ本格的にプログラミングできるような人はそもそもExcel使うだけの人なんて眼中にない
全く
>>906 への返信になってないレスだな
こういうのを上から目線という
何事もそうだけど慣れた直後が一番イキっちゃう時期なんだよ 入り口に過ぎないのに分かった気になっちゃう奴 VBAを使いこなせるようになった時なんて丁度プログラマのそれだから、 VBAツカイガーっていうよりも誰しもが通る思春期に合致してるだけよ
経験者が初心者に対して上から目線なのってあたり前田のクラッカーだとおもうが
どんな企業でも優秀な人材だけを採用するのは不可能だから、一番能力の低い社員にレベルを合わせてあげないと業務が回っていかなくなる これがレベルの引き下げの第一段階 一般の消費者はもっとバカだから、どんなバカにも理解できる商品を開発してやらないと物が売れなくて利益が上がらなくなる これがレベルの引き下げの第二段階
業務が回らんことはないだろ できる人間がvbaなり関数なり使ってひな形作ってやって、関数もできない人間はそのセルにデータ入力する仕事だけするのが最適解だろ できない人間に合わせて全員そろばんしろなんてのは一番非効率
>>915 ぶっちゃけそういう思考は最終的にはできない人間はソリティアやってろという結論にしかならんよ
VBAで劇的に効率改善できるような程度の職場の事務作業なんて、真面目にシステム化していけばほとんどは無意味になる
そもそも実務はワークシート関数20種類程度とピボットテーブルまで出来れば大抵の事はこなせるんでしょ? それ以上となればマクロになるのかなと
>>916 あんたのところはそうなのかも知れんが
こっちは元がアナログデータだしデジタルに直す際に必ず人間が打つ必要があるから
ソリティアやってろにはならんよ
どれだけ効率化しても
データうつ人間は絶対必要
宜しいんじゃないでしょうか? イキったりムカついた奴がそれを論理的に叩き潰そうとしたり 更にそれにムカツいた奴が否定してバトルになって 負けず嫌いで勉強して強くなってく。 ここってそんなスレだったじゃない。
報告です 本日淡々と自動化廃止作業をはじめ、これまでのデータをvlookup以下の知識で扱えるものに変えました 廃止メールをおくりましたが返信がないため仕事を終えました 結構どうでもいいことなのかもしれませんね 悪い方向へ進んだらそれまでだと考えます
残業地獄になるんだからどうでもいいわけないと思うが vlookupすら扱えないのに不平ばっかりのゴミどもに対してはざまーって思う
ちゃんと残業代が出る会社なら、わざと仕事をゆっくりやって残業代を貰うのがジャスティスですよ
まじかよ 俺は多少金がもらえたところで残業なんてしたくねぇ
1時間残業して1000円とか2000円とかしか貰えないなら貰わずに家に帰って睡眠時間なりプライベートの時間を増やした方が精神衛生上良い
固定残業なので残業代は残業をいっぱいしないとでません
残業は一切したくない派です
>>926 さわりの相談メールを送ったのですが、メールをなかなかみない上司なので
イラついて実行してしまいました
会社員としてはまずいですよね
ちょっと後悔しています
>>930 皆さんが嫌でなければ今後も話させてください
>>931 俺も聞きたくはあるけれど
一応ここVBAの質問スレだからほどほどにね
>>913 自分がプログラミングできる事を偉そうに話す言語スレ、VBAスレ以外知らないんだがw
メジャーな言語にはたいがいマウント合戦してるスレがある
>>928 プライベートな時間で5ちゃんねる見てマウント合戦が精神衛生いいとか、どんだけ悲惨な職場なんだよ
まさに今5chでプライベート時間に マウント取ってるやつが人のこと悲惨とか言えるのか
>>921 こういう馬鹿がメンテ不可能な代物を作って混乱を招く
だからVBAやマクロ禁止の会社が出てくる
うちが悲惨なのは言われなくてもわかってるが、気付いてなさそうなやつを見かけたから指摘したった それに、今がプライベートな時間だとは一言も言ってない
なるほどこんな夜中まで働いて 合間に5chで人様にゴミみたいなマウント取るのが趣味の人間なんだな
>>874 そうやってこっちが思ってることは
絶対に相手に伝わるからな
そこで5年ぐらいROMってると、ここまで丁寧に説明しなくてもわかるようになるんですよ
丁寧名説明というよりあなたのはマウント取りたいがための反論ですよね
会社だろうが家だろうが、5chなんか見てるやつは俺もお前も全員クズだ自覚しろ
というか2レス目からは お前が言うなって言わせないためのレスって感じ
俺様スゲーだろーという独りよがりのクズプログラムを作って、混乱を引き起こすだけの代物でしかないという現実に気付かず得意気に自慢する馬鹿
申し訳ございません。 おわびにもう一本作っときますね
井の中の蛙が作った馬鹿なプログラムのせいで業務が止まることもある
>>945 だから原始人たちのご要望どおりに元の洞穴生活に戻してやったんだろ
日本語もまともに読めねーのか
高い代償を払う羽目になる可能性高いけどな 周りの心象が悪いと査定にも影響して自分が損するだけだろ
じゃあどうしろと 要望に答えなかったら不平、要望に答えても不平 無理ゲーじゃん
問題があるなら上司にまず相談だろ 修正するにしても変更箇所の差分とって関連する部分の洗い出し 動作確認して問題がないことの説明、いつから運用するかを関係者に連絡 他にもいろいろやることあんだろ
そういうやる事やってないから不平不満が出たって線が露呈したって話?
言われてもたらそうかもな。原始人生活に戻すにも時間が必要か
作ったものがひとつ残らず生かされてるなら もう会社は運営まで自動化されててもおかしくないが 積み木崩しのように なんども同じことをしている そうしないと人をやとえず社会不満がたまる
最終的に従業員を遺伝的に淘汰するのが目的なので そこをわかってて従業員をいじめる上司だけがいい目を見れる だから下っ端が思わぬ成果なんか上げたら逆に袋叩きにされる 愚民支配と淘汰という本来の目的が達成しづらくなる
少々VBAを頑張ったって その先が袋小路なのをみんな知ってる
運営まで自動化とか流石にアホか どこぞのAIニュースに洗脳されすぎ グーグルアシスタントは相変わらずアホ丸出しの返答しかしないし グーグルのスーパーパワーを持ってしても自動翻訳はズタボロ 自動字幕も少し雑音が混じったり発音がおかしいととたんに崩れる
そもそも出世に必要なのは仕事の能力ではなく根回しだと気付いたやつからどんどん辞めていく 能力のあるやつは出世を待つよりさっさと転職した方が早く給料が上がる
仕事をする能力と仕事をさせる能力は別なんだが、後者がなかなか浸透しない 前者しかできない人間を出世させる会社はうまく立ち行かない
休日のすべてはVBAの学習に捧げているから、できないヤツを見下したくなる心理ね
場合によってはエクセルできない非効率なやつのせいでこっちも残業させられるハメになるから無学はやっぱり罪だな
>>965 そんな頭の悪い人にはそもそも無理なんだよ
自分の身の回りの業務改善が せいぜいだろうよ 企業が組織チーム立ち上げて 抜本的システム改善を行うのとは またこれはケースが違うわな
自分専用の手抜きマクロ作っただけで業務改善とか言ってる初心者うちの職場にもいるけど関わらんようにしてる
>>969 それに気がつける組織人材が本当にいない事実
シートを方眼紙風にして、シート上に線用ボタン、丸用ボタンを配置して、クリックしたら枠線に合わせるモードでクリックの度に描画したいんですけどコードの触りだけでも教えて下さい。
上層部が、仕事の質を見極めない・技術選定をしないから、 Excel に適していない業務でも、 何となく、そこにいる人が出来る技術・Excel などでやってしまおうと考える 目的から技術を決めていない。 先に人材リソースがあって、それを使って何か出来ないか、みたいな考え方 だから適材適所じゃない Ruby on Rails などのWeb 系は適材適所で、 目的に応じて、コロコロ言語も変わる 例えば、若い女の子がRails で一人で始めた、食べチョクでは、 2週間で、副業プログラマーを2人雇えた すごく明快。 現場のレベルよりも低いと雇わないだけ。 現場のレベル以上だと雇う 現場も雇われる方もプロ同士だから、話が早い
会社がもうちょっと給料上げてくれたらvlookupくらいは覚えられる人材が来るのかな…
>>973 そもそもここはVBAのスレだし
あえて言うならWeb版EXCELを使うので有れば一番適した言語はクライアント側がJavascript、Web Server側がVB.NetかC#、DB Server側がSqlServerだろう。
以前からたまにRuby信者が貼っているコードはまともにEXCELも使いこなせていないものばかりで意味をなしていない。質問スレでの要件も満たせないようなのが何を言っても説得力が全くない。
統計や自動学習のような比較的それらの言語が苦手としているものであればPythonが有効、ゲームのように細やかな設定が必要であればC++が有効になる場合もあるが、Rubyの出る幕は全くない。消えろ。
「どーよ?www俺様のマクロコードすげーだろ?wwwこんなにムズいコード書けるんだぜぇwww」と自慢してくる同僚がいるけど、どう対処すれば良い? 称賛してやるべきなのか?
vbaかける社員が同じ会社の同じ部署に二人いるだけで安泰だな…正直羨ましい
どの程度自動化出来てるのか知らんがこっちに来てほしいけど 10数万の安月給事務じゃそんなやつ無理だよなぁ 関数すらまともに使えない奴ばっかりだしな…
>>965 たまにそういう人いるけど、なんだか寂しいなぁと思う。
趣味 Excelって。。。
バカにするつもりは無いが、周りからは変わった人だと見られるからさ。
人の趣味にいちいちケチつけたがるような人にはなりたくないな…
バカにするつもりはないって言ってるけど 思いっきり馬鹿にしてる書き込みだよな
>>982 でもお前、趣味5chじゃん
EXCELが趣味ってより人に言ったらドン引きされるけどそれはいいの?
VBAを勉強していくにつれVBA捨てたくなるもんだと思うけどそうならないのが信じられない
xlsmファイルのまま、csvっとして保存する方法はありますか? ・一旦コピーを作ってから開き直してcsvとして保存 ぐらいしかないでしょうか
>>987 馬鹿なら馬鹿らしく拡張子をrenameしろよ
>>988 VBAにはrenameというメソッドはあるのでしょうか?
GetExtensionNameを変更しろという事でしょうか、しかしそれでは中身がExcelファイルのままなのであまり意味がありません
>>986 今まで勉強して来た言語を捨てるという方が信じられんな
別の言語やりたければ別の言語もやるだけの話
何故捨てるという考えに繋がるのか分からん
複数の言語覚えられない人?
>>978 そもそも見ない
ちょっとてが離せないとかいう
>>987 ないわな
csvファイルにした時点で中のマクロは死んでしまい、元には戻せなくなる。
そもそも別途ファイルを出力するんじゃなくてマクロの入ったファイルをそのままcsvファイルにする用途なんかあるのか?
まぁ大体csvファイルは〜で始まるやつは
基地外Ruby信者のRubyでコード書いて荒らすときの前振りが殆どだから余りまともに相手する必要もないか。
>>991 複数の言語を知ってるからこそ捨てたくなるんだろ
もっと言うと捨てたいけど捨てられないっていう状況になりがちなのがVBA
とっととVBAに加えてC#使えるようにしろや ⇒ MS
>>994 いちいちルビ廚召喚すんな、スルーしとけ
>>995 は?
VBAに加えてC#って使えるだろ
やり方知らないのを如何にもMSが悪いみたいに言われてもな
Excel + VB → VBA Excel + C# → VSTO Excel + JS → Office Add-ins
>>997 C#で開発してブックだけで配布できるならやり方書いてくれ
まさかと思うけどVBAからcsc.exe起動してとかじゃないよね?w
-curl lud20241228182227ncaこのスレへの固定リンク: http://5chb.net/r/tech/1621914481/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「Excel VBA 質問スレ Part71 YouTube動画>3本 ->画像>7枚 」 を見た人も見ています:・【詐欺運営】BLEACH Brave Souls 初心者質問スレ1【ブレソル】 © ・Excel VBA 質問スレ Part61 ・Excel VBA 質問スレ Part66 ・Excel VBA 質問スレ Part67 ・【詐欺運営】BLEACH Brave Souls 初心者質問スレ2【ブレソル】 [無断転載禁止] ・Excel VBA 質問スレ Part68 ・PROJECT X ZONE 2:BRAVE NEW WORLD質問スレ [無断転載禁止] ・+ JavaScript(ECMAScript)質問用スレッド vol.123 + [無断転載禁止] ・Counter-Strike: Global Offensive 質問スレ Part3 ・【Switch】Xenoblade2 質問スレpart1【モノリス】 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.71【FGO】 [無断転載禁止]©2ch.net [無断転載禁止] ・コロプラ 白猫プロジェクト 質問スレpart68 [無断転載禁止]©2ch.net [無断転載禁止] ・【FFBE】 FINAL FANTASY BRAVE EXVIUS 質問スレ7 [無断転載禁止] ・【FFBE】 FINAL FANTASY BRAVE EXVIUS 質問スレ6 ・【Ep7】Epic Seven -エピックセブン- 質問スレ Part9 ・【MobA】vainglory初心者質問スレ ★Tier7 ・【MobA】vainglory初心者質問スレ ★Tier6 ・【MobA】vainglory初心者質問スレ ★Tier11 [無断転載禁止] ・【BSO】BraveSongOnline 質問スレ Part3 ・【MobA】vainglory初心者質問スレ ★Tier13 [無断転載禁止] ・Cubaseシリーズ 初心者質問スレ Part23 ・【海外通販】AliExpress初心者質問スレ Part2 ・ポケモンGO 質問スレ Lv3 [無断転載禁止]©2ch.net [無断転載禁止] ・Webサイト制作初心者用質問スレ part248 [無断転載禁止] ・アフィリエイト総合 質問・雑談スレ25 ・Blender 初心者質問スレッド Part48 ・5chブラウザ「ChMate」質問スレ Part70 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.98【FGO】 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.64【FGO】 [無断転載禁止] ・5chブラウザ「ChMate」質問スレ Part75 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.93【FGO】 ・【テレ朝】自作の質問117件を視聴者のものと偽る、「ワイド!スクランブル」関係者を懲戒処分 [鉄チーズ烏★] ・【質問スレ】ESCAPE FROM TARKOV Part.3 ・Florensia -フローレンシア- 質問スレ Part1 ・5chブラウザ「ChMate」質問スレ Part68 ・5chブラウザ「ChMate」質問スレ Part65 ・5chブラウザ「ChMate」質問スレ Part77 ・2chブラウザ「2chMate」質問スレ Part31 ・【質問スレ】ESCAPE FROM TARKOV Part.1 ・Civilization5 (CIV5) 質問スレッド Vol.28 [無断転載禁止] ・【マイプロテイン】質問スレ【Myprotein】 Part.2 [無断転載禁止] ・SOULALIVE ONLINE 質問スレ Part3 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.78【FGO】 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.92【FGO】 ・2chブラウザ「2chMate」質問スレ Part41 ・【マイプロテイン】質問スレ【Myprotein】 Part.6 ・2chブラウザ「2chMate」質問スレ Part44 ・5chブラウザ「ChMate」質問スレ Part50 ・Fate/Grand Order 質問スレ Lv.22 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.66【FGO】 ・【質問スレ】ESCAPE FROM TARKOV Part.2 ・5chブラウザ「ChMate」質問スレ Part66 ・2chブラウザ「2chMate」質問スレ Part34 ・Stardew Valley 質問スレ 3 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.65【FGO】 ・5chブラウザ「ChMate」質問スレ Part68 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.91【FGO】 ・【テンプレ必読!】Fate/Grand Order 質問スレ Lv.61【FGO】 ・5chブラウザ「ChMate」質問スレ Part54 ・NAVYFIELD 初心者質問スレ Part19 ・【質問スレ】ESCAPE FROM TARKOV Part.5 ・Civilization6 (Civ6) 質問スレッド Vol.13 ・Elona初心者質問スレッド その120 ・【FONV】Fallout:NewVegas質問スレ $28【テンプレ嫁】 ・Fate/Grand Order どんな質問にも全力で優しく答えるスレ Lv.154 ・【L2R】リネージュ2 レボリューション / Lineage2 Revolution 質問スレ part9
04:22:27 up 16 days, 14:46, 0 users, load average: 5.27, 6.40, 6.66
in 2.6479890346527 sec
@0.049323081970215@0b7 on 122818