◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:Excel VBA 質問スレ Part61 YouTube動画>1本 ->画像>3枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1556203263/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part60
http://2chb.net/r/tech/1552736349/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
>>998 >おっさん、それじゃ値が二つできてしまう
出来て良いんだよ。
どうせ2つあっても上の値しか拾わないし。
usedrange.columns.count は多用しますが これを列番号ではなく アルファベットで(AX列、というように) 取得することはできますか?
>>5 あ、addressメソッドがありました。
自己解決しました。
よっぽど自己矛盾について触れて欲しく無かったようだな。
>>973 で
>>857 はその後だと言ってるのに。
ネットワーク上のMDBファイルにADOで接続して取ってきたデータを帳票に表示→印刷というマクロを作りました しかし1件なら問題ないものの、ループ実行すると正常終了で終わるのですが 実際に印刷すると2件目以降のデータが反映されず、全て1件目のデータが印字されます どうもMDBから取ってくる部分のタイミングの問題に見える(その部分に差し掛かると画面が固まる。DoEventsを入れずに重い処理をさせたときの感じ)のですが、SleepやDoEventsを適宜挟んだり、印刷ではなく別ブックやpdfに書き出しなどに変更しても効果が見えません この現象の解消方法をご存知の方いませんか?
>>8 言ってることがよくわからんけど、adoで直結してデータとってきてるなら、doevents挟んでも意味ない
なので、そもそもバグってると思われる。
doeveが効果あるのは、間接的に(と言って伝わるかわからんけど)何か処理するとか表示を反映させるとかの場合
>>8 俺も単なるプログラムミスだと思う
謎々シテナイデソース貼れよ
movenextが無いとかループカウンタが加算されていないとか
ブレイクポイント置いたり、debug.print挟んだりするのは、 基本のキ
Sheet1, Sheet2, Sheet3 がある状態で A1 =fnEnumSheetName() と入力すると A1 シート名一覧 A2 Sheet1 A3 Sheet2 A4 Sheet3 と表示されるようにしたいのですが A1に#VALUE!と表示されDebug.PrintがSheet1しか表示しません 期待通りにするにはどう修正すればいいですか? For文3行目のコメントアウトを外すとDebug.PrintとA1の表示は期待通りです 'シート名列挙 Public Function fnEnumSheetName() As String Dim iIndex As Integer For iIndex = 1 To Worksheets.Count Debug.Print Worksheets(iIndex).Name ' ActiveCell.Offset(iIndex, 0).Value = Worksheets(iIndex).Name Next iIndex fnEnumSheetName = "シート名一覧" End Function
訂正です × For文3行目のコメントアウトを外すとDebug.PrintとA1の表示は期待通りです ○ For文3行目をコメントアウトするとDebug.PrintとA1の表示は期待通りです
for iIndex=1 to workbooks("xxx.xls").sheets.count workbooks("xxx.xls").sheets(iIndex).name
>>14 それ、前スレで言われてた副作用のある操作は難しいってのに該当する。
セルに入力中はVBAの実行が普通は出来ないから。
ActiveSheet.Cells(1, 1) = "シート名一覧" Dim iIndex As Integer For iIndex = 1 To Worksheets.Count ActiveSheet.Cells(iIndex + 1, 1) = Worksheets(iIndex).Name Next iIndex 全く何がしたいのかわからない
>>20 それをfunctionにしてセルの中からよび出そうとしてる。
それでは動かない筈。
>>14 ActiveCellが悪さしてそう
シート名を二次元配列に格納してセルにペーストした方が速いだろう
sheet1と表示されるなら、sheet2がないためエラーが発生してるんじゃない 関数は個人用マクロブックとかに書いてあるとか
>>21 そんなの単純に
A1 =fnEnumSheetName() と入力すると
このファンクション内で最初に書き換えるから?最初でなくても矛盾が生じる
から、動かなくても問題ない、そこに居れた式を書き換えたらなりたたない
当然だろ、何か考える必要あるのか?
>>24 いや、だから元々の質問は成り立たせたいわけだろ。
あと、シート自体にロックが掛かってるから入力中は動かないよ。
>>25 単純に考えても成り立たないだろ、ってかセキュリティもあったもんじゃなくなる
式を「A1」に入れて「A1」を書き換えたら
ありがとうございます ブック名を指定しても A1にシート名一覧を表示しないようにしても 同じ結果でした
>>28 すまないけど、人に分かるように書き込みできんのかな?
混乱してるみたいなのでまとめます
>>14 の状態(コメントアウト有り)では
A1のシート名一覧は表示され
Debug.PrintもSheet1~Sheet3まで表示されます
コメントアウトしている部分で書き換えているのはA2~A4です
>>29 fnEnumSheetName = "シート名一覧" 'ここはコメントアウトしなくても問題無い
という事です
すまんかった >19が正解っぽい sheet1だけなら fn~=application.thiscell.parent.nameで拾える A1を書き換えようとすると2016では循環参照の警告がでる
>>33 そうなんですね
ではA1には式を入力するだけという事にしておいてください
ですがそれでも解決はしません
ActiveCellの部分を他の方法でやってみます
>>34 独自関数は、自分のセルを計算するだけにしておけよ
それ以外を許すと全く分からなくなる
その程度のことも判断しないとな
>>35 失礼ですがあなたの指摘(A1が云々)は本題とは関係無いんです
コメントアウトしても同じ結果だったので
>>30 だから、コメントアウトしたのは入力したシート内のセルに入力するコードだろ。
そういうのは普通は動かないんだ。
動かすことは出来るけど難しい。
例えばA1に途中迄入力してセル内カーソルがある状態でVBAを動かそうとしても動かない。
じゃあ、どうやってやるかと言えばSetTimerを使えば出来る。
ただし、使いなれた人じゃないと大変危険だ。
まあ、実際の所、
>>35 に賛成だね。
こういう処理はセルへの入力をトリガーにすべきじゃないな。
>>36 関数内で配列を作って返し、複数セルにわたって配列数式での入力(ctrl + shift + Enter)にすればできる
>>41 >>18 痴呆は同じ事を何度も繰返す
まあその程度の知恵しかないからしょうがないんだろうけどw
配列にしたらできました ですがシート数が固定ではなくセル選択範囲がネックになるので ボタンをトリガーにして当初のコードを利用する事にします ありがとうございました
>>44 配列の長さを越える範囲を選択しても下の方が#NAになるだけで上側は有効だけど、
確かに見苦しいからそのやり方の方がいいだろうね
>>14 Excelの決まりとしてセルに入れた数式の結果はあくまでそのセルだけのもの
他のセルを弄るというのはセル数式の領域外
だからActiveCell.Offset~があるとエラーになる
こういう場合はコマンドボタンとか付けてそれ押したら指定先のセルに表示するとかする
シートの上限を制限できるなら Public Function fnEnumSheetName(Index As Integer) As String If 1 <= Index And Index <= ActiveWorkbook.Worksheets.Count Then fnEnumSheetName = ActiveWorkbook.Worksheets(Index).Name Else fnEnumSheetName = "" End If End Function を定義して A1に =fnEnumSheetName(Row()) を入力 あとは必要分を A2 から下に関数コピーすればいい
色々なシートを触る時、.activateは入れますか? set sheets("sheet1") = foo set sheets("sheet2") = bar foo.activate foo.cells(1,1)="str" bar.activate bar.cells(1,1)="str" 要は cells(1,1)="str" とシート名を抜かしてしまった時の保険なんですが、止めたほうが良いでしょうか? また、シート名を忘れた時にエラーが出る等、わかるようにする方法ってありますか?
Activateなんて殆ど使うことは無い。 と言うより、シート名を抜かすことなんて有り得ないというくらい無い。 寧ろブックも省略しない。 だからWithかSet sht=Workbooks("hoge.xlsx").Worksheets("fuga") をたいてい使う。
ああ、よく見てなかった。 Set使ってるじゃん。 それなのに抜かすことが有るの?
>>52 はい
もちろん最初からこの形なら良いのですが、
1シートしか使わないマクロでシート名を抜いて記述
その後、2シート以上に増えた時、改修する時に抜ける事があるのです
1シートだけでもシート記述した方が良いんでしょうかねぇ
>>54 関係ない。
というか染み付いた方が良いと思うよ。
シート数がどうとか考えることもなく自分は省略しない。
それにブックを複数開くことって無いの?
>>50 原因がわからないエラーじゃないんだから保険ではなくきちんと明示するようにしよう
書き忘れてエラーが出たらそれをちゃんと直すようにしよう
中途半端な保険なんて入れておくとますます不備に気付けない
自分の簡単なチェック方法は前にドットがついてないrangeとcellsを全部検索するようにしてる
>>49 まだ言ってるのかw
それを自己矛盾と言張るならお前も根拠出せって話な
>>55 ありがとうございます
癖にしていきます
ブックを複数開く事は滅多に無いです
基本的にそのブックにマクロをもたせるようにしています
>>50 シート名忘れるような奴はそのうちActivate指定も忘れたり間違えたりすると思うぞ
そもそもそんな保険を掛ける前に
> set sheets("sheet1") = foo
とか書いて疑問に思わない自分の頭を心配した方がいい
>>57 www
正式な方法があるか無いか分からないのに「無い」と言い切ったことが根拠だと何度言ったらww
>>59 それもそうですね
ちゃんと書くようにします
そして酷い間違いすいません
>>60 それじゃねーよ、バーカ
これの根拠書けって話な
>> 857
On Errorしかないのが正式なら同じだし、
On Error以外に正式なものがあれば問題ないし、
スポーツの試合だとお互いの実力が拮抗していると長くなるよね
>>20 > ActiveSheet.Cells(1, 1) = "シート名一覧"
これはセルの値を変更だろ
下のは式としては=Test()で表示としてはSampleになるから別物
混乱させようとした愉快犯か?
Public Function Test() As String
Test = "Sample"
End Function
SubよりFunctionの方が格好いいような気がして、 意味もなくFunction使っちゃうんですよ。 何でしょうね。
>>65 個人用ならどうでもいいよ
オレが関わる(他人も使う)なら、糞ボケ春日と言わせてもらう
>>62 その根拠www
>>60 は根拠そのものなんだがwww
お前は1+1=5だと言っている。
俺はそんなの全く説得力が無いと言っている。
何故なら1+1=5の根拠を全く示していないからだ。
今の状態は1+1=5だとお前が妄想しただけとしか受け取れない状態だ。
妄想でも構わんが何ーつ説明出来ていないんじゃ説得力が全く無いのは自明の理だ。
←これが俺の根拠だ。
それで全て。
バカで理解出来ないようだからもう-度言う。
今言ってるのはお前が自己矛盾してるかどうかだ。
正式な手順があるだろうという俺の主張の話は何ーつしていない。
前にも書いたが一緒にして逃げを打たれても困るんでな。
>>68 だから俺の主張がMSに確認してないから根拠がないと言うならお前も根拠を出せよっていうだけの話
そもそも俺がMSに確認してないという根拠すら出せないだろ?w
>>70 バカ?
1+1=5と言われて信じる奴が何処にいる?
だから根拠を出せと言っている。
根拠を出せなければ信頼に値しない。
俺がお前の根拠を示す必要は全く無い。
>>70 いや、お前が確認してるなら根拠を出せば良い。
出さなければ信頼に値しない。
で、今までお前は根拠を出さなかった。
従ってお前の主張は信頼に値しない。
これが根拠だから俺がMSに何かを確認しても、それは根拠には成らん。
>>70 いや、お前が確認してるなら根拠を出せば良い。
出さなければ信頼に値しない。
それだけのことだから俺にはMSに何かを確認する意味がない。
で、今までお前は根拠を出さなかった。
従ってお前の主張は信頼に値しない。
これが根拠だから俺がMSに何かを確認しても、それは根拠には成らん。
on errorで出来てるし、もしMSにきいたとして 来る回答のパターンは on error on error以外 出来ない くらい?出来ないはないと思うんで、 on errorが正式か、正式が別にあるんじゃないかな
>>74 俺もその主張をしているけど、ここでの問題はその議論とはちがう。
確認もせずに
>>70 が「言い切った」ことが問題。
>>74 の主張の正否とは関係なく「言い切った」ことは間違ってると言っている。
>>75 > 確認もせずに
だから俺が確認して無いって言う根拠を示せよw
当然できるんだよね?
>>74 > くらい?出来ないはないと思うんで、
なぜそう思う?
正式にはそんな機能はありませんとか回答する可能性はかなり高いと思うぞ
そもそもOn Errorの方法自体がかなりトリッキーだし
>>76 www
バーカwww
お前が確認しようがしまいがそれをここで提示出来てないから説得力無いと言っている。
提示出来なければ確認してても何の意味も無い。
>>78 説得力の有無なんて関係ないだろ
お前が根拠を示せてないと言う「事実」があるだけ
>>79-80 で?
その方法はMSから回答もらったのか?w
あと念の為に言っとくけど、普段はこんなアホなことは言わんよ
「MSに確認」を執拗に要求するアホがいるから、人に要求するなら自分も根拠を示せというだけのこと
>>81 ほら、また自己矛盾だ。
バカだから気付いていないwww
VBAに拘る人種の何たるかが分かるレスバだね 関わらないのが一番
結局、バカがトリッキーだと思っただけのことをさも確定であるかのように騙ってただけのことだった
>>77 それがトリッキーなら前スレ848
>例えば昔仕事で扱ったWin32APIのGetPrinterでは取得するPinterInfo2構造体のサイズを0にして渡して敢えて失敗させることによって正しい構造体のサイズを取得するなんてのがある。
もトリッキーでしょ
>>82 もうそういう具体性のかけらもないレスしかできないかな?
>>84-86 まともなプログラマーならドキュメントに明記されてることとそうでないことの区別ぐらいは付きそうなもんだけどな
まあ今更引っ込みつかないんだろうなw
そうでないからMSに確認しないとわからない 回答がドキュメント代わりになる
フォームから10個のTextboxに書かれた情報をボタン投下時にTextfileに一列タブ区切りで追記するもの。(空もあり) それと、そのTextfile読み取って全列一列ずつExcelに転記出来るものを作り、内容を変更したりした後、再びTextfileにoutputするものを作りました。 そのTextfileの中ワードを検索し該当する行をタブ区切りで配列に格納してリストビューに転記するものを作ったんですが、たまに配列数0から7個だったり少なくて転記の際にエラーになるのはなんかありますか?
>>89 回答じゃないけど、テキストファイルに書くんじゃなくて(隠し)シートに書いてやるのはダメなの?
>>88 必要なら君がやればいいだけ
そんなこともわからないの?
>>89 取り敢えずエラーになった時のTextfileは確認したの?
>>87 www
説得力が無くて良いならお前はもう反論出来ないということだよ。
俺の主張に説得力が無くても良いと表明したんだからなw
俺は説得力が無くても良いとは思わないから、お前は騙り確定だw
>>91 だから必要なのは正式ではないと決めつけたお前なんだよwww
バカだなあw
>>93 説得力が無い?
> 説得力の有無なんて関係ないだろ
> お前が根拠を示せてないと言う「事実」があるだけ
って書いてあるんだが、ひょっとして違いがわかってないのか?w
>>95 バーカwww
根拠は示せてるで確定だwww
お前は「根拠は示せてる」に反論出来ないwww
>>95 お前自ら、反論出来ないと表明しちまったんだよw
>>95 根拠は示したという俺の主張が「事実」であり、それにお前は自ら説得力が無くても良いと言ってしまった。
一方、根拠は示されていないというお前の主張に説得力が無くても良いとは言わない。
従って、お前は反論出来ないが俺はいくらでも反論させて貰うw
そもそも根拠は何の為に必要なのかと言えば、主張に説得力を出すためだ。 相手に求めるのも説得力が無いから説得力を出すために根拠を提示しろということだ。 そんなこともわからないんだから全く意味不明。
>>96-99 > 根拠は示せてるで確定だwww
ほう、どこで示せてるんだ?
レス番示して引用してみな
まあ、どうせまたごまかすんだろうけどw
そろそろ、無意味な言い争いやめたら、だんだん何したいかわからん
>>100 お前の理論によればもはや示す必要もないwww
残念でしたwww
説得力無くて良いんだろw
説得力無くても良いと言ったんだから不必要なものを求めるな。 バカがw
>>102 > お前の理論によればもはや示す必要もないwww
はい、想像通りでしたw
>> まあ、どうせまたごまかすんだろうけどw
> 説得力無くて良いんだろw
そう言うこと、匿名掲示板でMSに確認ガーとか言い出したらキリがない
常識が通じない相手とはやり取りが困難って言うだけのこと
>>101 スレ跨いで粘着するような人なので察してやってくださいなw ⇒
>>7 まあ連休で暇だからと言って相手してる俺も悪いんだけどね
>>104 www
バーカwww
本当にバカだな。
説得力が必要なければ、ここは意味が無い。
それどころか全ての議論は意味が無い。
MSに確認は説得力を増すための十分条件だが、必要条件では無いから必ず必要なわけじゃ無い。
しかしお前は何-つ説明をしていない。
その上で説得力を必要無いなどとバカを晒した。
それじゃ議論の意味が無いからお前がここで何かを主張するのも意味が無いと自分で表明したことになる。
本当にバカだ
>>89 テキストボックスが空だったときのテキスト出力に問題がありそう
エラーが出たときのテキストボックスの入力状態を再現できるなら、個々の値の転記処理が終わる箇所にブレークポイントを設定して、テキストファイルの区切り文字の数とかをダンプして確かめるといいよ
> その上で説得力を必要無いなどとバカを晒した。 まず日本語のてにをはからやり直せよ… 頭に血が上りすぎだろw
>>111 既に結論出してるからね
>> 説得力無くて良いんだろw
> そう言うこと、匿名掲示板でMSに確認ガーとか言い出したらキリがない
> 常識が通じない相手とはやり取りが困難って言うだけのこと
常識が通じないことを言い出したのは自分じゃねーかw
バカが何か喚いてるなw > そう言うこと、匿名掲示板でMSに確認ガーとか言い出したらキリがない
>>116 反論出来なくなって議論を放棄したバカはお前だろw
>>117 バカが何を喚いても
> そう言うこと、匿名掲示板でMSに確認ガーとか言い出したらキリがない
という事実は変わらない
ここの人達を見てるとVBAがなぜオワコンなのか分かるね
>>119 逆だろ
敷居が低すぎて誰でも使えるから荒れる
当時はすぐにVBA.NETがでると思ったんだけどなぁ
>>89 取り出し方を間違ってるかTextfileの中身が実際に足りてないかのどっちか
>>92 エラーになったTextfileは確認しました。
もちろん配列格納時に足りなくまります。
>>106 print #fileNo,txtA.Text &vbTab;
print #fileNo,txtB.Text &vbTab;
・
・
print #fileNo,txtG.Text;
今コードないからあれですけど、こんな感じだったと思うんですけど何か起きそうですかね?
>>124 > エラーになったTextfileは確認しました。
> もちろん配列格納時に足りなくまります。
だ・か・ら、Textfileの中身はどうなってるんだよ…
>>118 お前は既に敗北宣言してるんだから今さら何言っても無駄だw
説得力が無くて良いと言うのは敗北宣言に等しい。
俺がお前に対して何も説得力が無くても良いと言ってしまったんだからなw
また痴呆症の再発かよw
>>95 説得力が無い?
> 説得力の有無なんて関係ないだろ
> お前が根拠を示せてないと言う「事実」があるだけ
って書いてあるんだが、ひょっとして違いがわかってないのか?w
>>127 今さら、ひっくり返そうとしても無駄w
お前の言によれば俺の主張に説得力は必要無いということだからな。
お前は無条件に俺の主張に同意すると言ったに等しいw
>>127 お前の言う「事実」なんて無いのも確定だw
「事実」なんて無いという俺の主張に説得力は必要無いとお前が言ったんだからなw
なぜ、こんなアホなことになったのかは容易に想像できる。 このバカは自分と相手の主張の整合性や論理というものを考えずにその場で反論出来れば良いと不用意な発言をしたんだろう。 全くどうしようもないバカ者だ。 発言を続けていれば論理が無くても勝てると思ってるのだろうw
痴呆症のうえに妄想まで出てきたか 末期症状だなw 1つだけお前のレスで正しいところがあるよ > それどころか全ての議論は意味が無い。 「基地外との」って言う言葉を前置すればねw
>>132 勝手に省略するなバカw
説得力が必要ないというならという前提がつくんだよ。
お前の主張によればという前提でも良い。
全ての議論は意味が無いというのはお前の主張が正しければだ。
バカ者がw
意味のない議論(と本人は思ってる独り言)を延々と続ける痴呆老人w
>>134 本来、何かを主張するということは、自らの説得力を持って相手に納得させる行為なんだよ。
ぐうの音も出ないというのは、相手の説得力に対して抗しきれずに納得させられたという状態だ。
お前は説得力が無くてもかまれないんだから、相手がどんなアホなことを言ってもぐうの音も出ないと表明してしまったわけだw
あと念の為に言っとくけど、普段はこんなアホなことは言わんよ 「MSに確認」を執拗に要求するアホがいるから、人に要求するなら自分も根拠を示せというだけのこと できない時点で単なるつぶやきでしかない
あると断定するよりないと断定するのは難しいよね
単に自分が見つけられなかっただけでは断言なんてできないし
>>136 確認しなくても、ない根拠を示せば相手も黙るのでは
まだやるも何も完全に論理破綻してるけど自ら白旗挙げたことに気付いて無くて悔しいから、最後まで何か言ってれば負けたことにならないと信じてるアホがいるだけ。 MSに確認しなくても説得力ある話をすれば良かったのに、今となってはそれも手遅れ。 説得力が必要無いなんて、じゃお前は何でここに居るんだよwというくらいのアホ。
>>138 前から、怪しい奴が横から沸いてたw
アホらしいから取り合わんけどね。
>>139-140 >>134 >>141 前スレから粘着するぐらいだからもう無理でしょw
>>142 論理無しでも最後まで口を出せば負けないと思ってるアホw
よし、わかった。 ここをExcel VBAスレにするのは平成までにして、 令和からは、ドキッ!丸ごと水着女だらけの水泳大会スレにすれば、 すべて解決する。
戯れ事を指摘したことの根拠は戯れ事を否定する根拠が無かったことなのにな。 何にも根拠が無かったら発言しなければ良かったのに。
1 安倍晋三 アベシンゾウ 2 麻生太郎 3 小泉純一郎 4 白石麻衣 ・ ・ ・ 全員にフリガナをふりたい 今手動で名前をカット→貼り付けでフリガナをだしてます それを自動でやる方法 または違うやり方があれば教えてください ち、ちなみにjkです!
「あべ しんぞう」じゃなくて「あべ しん さん」で変換されてたら ふりがなもそうなるし並べ替えでも読みで並べ替えされるし
>>151 SEXしよう!
・関数
=PHONETIC(A1)
・vba
Sub foo()
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(i, 2).Value = Application.GetPhonetic(Cells(i, 1))
Next
End Sub
・その他
A1セルにカーソル併せてshit+alt+上でふりがなの設定が出来る
書き忘れた 関数とvbaで挙動が変わる 関数は入力した時のふりがなデータを引っ張ってくる。漢字をコピペした場合、ふりがなデータが無い事がある vbaはIMEのデータを引っ張ってくる。 どちらが良いかは無いが、基本的にはvbaの方が良い
神様ありがとう!!
やっぱりここのおじさんたち凄い
>>152 それはあきらめてるw
平均30-40ぐらいじゃないか。余裕で50代もいると思う
windows3.1時代には既に有ったからね dos版にもvbaって有ったの? 流石にそこまでは知らないんだけど
>>161 > dos版にもvbaって有ったの?
ないでしょ
VBAはExcel 5.0からでそのバージョンにDOSはなかったはず
指定する番号の行に 行を新規に追加するには どう記載すれば、良いですか?
Dim i As Integer i = InputBox("数字を入力してください") Rows(i).Insert Shift:=xlDown
皆さん、ありがとう 試して報告させていただきます。
>>164 nをfor next
で指定しても、動きますか?
エラーとなり、理由がわからず2日ここで止まってます。
コードも無いしエラーメッセ-ジも無いからエラーはよく分からんが、気になる点を1つ。 n行目に挿入されると、その行は何行目になるのかな?
>>169 具体的に何行目に追加したいか書いたほうが良いと思う
一行だけじゃないのか
>>169 たぶん For に Step - が必要な案件と見た
>>169 いっぺんに何行も挿入したいときは
Rows("6:15").Insert
この例では5行と6行の間に10行いっぺんに入れて、元の6行が16行に移動してる
>>172 初めて挿入やった時に上から順に挿入してってぐっちゃぐちゃになったわw
ありがとう、皆さん。お言葉に甘えて Sub 行の挿入() dim k As Integer dim i As Integer dim j As Integer dim h As Integer Set obj基本データ = Thisworkbook.Worksheets("基本データ") h = 7 Do while obj基本データ.Cells(4,h).Value〈〉"" For i = 1 To obj基本データ.Cells(5, h).End(xlDown).Row k = obj基本データ.Cells(4,h).Value j = obj基本データ.Cells(i+4,h).Value ThisWorkbook.Worksheets(k+2).Rows(j).Insert next i h = h + 1 Loop End Sub 回すと、 ThisWorkbook.Worksheets(k+2).Rows(j).Insert のところで、実行時エラー'1004' となります。
>>175 構文はあってるけど、存在しないセルを参照している
多分jに0か、kに-2が入ってるとかそんな感じ
変数の中身を確認して 確認方法はウォッチ式、イミディエイトウィンドウなどいろいろあるけど msgbox j msgbox k ThisWorkbook.Worksheets(k+2).Rows(j).Insert でも良い
>>176 遅くにありがとうございました。
ご指摘のとおり、iに0が入るため、エラーになっていることがわかりました。
後は、空白セルを0と読み取らせない方法を調べてみます。
丸二日、エラーの理由がわからずに悩んでいました。
見ず知らずの方に助けてもらえて感謝です。ありがとうございました。
>>176 IF j=0 then GoTo L1
を追加して、
エラーになるところを飛ばして解決しました。
ありがとうございました。
>>178 初心者は、問題がどこにあるのかに勘所が無いからこういう悩んで時間を使う経験をたくさんすると良い。
慣れれば5秒で気付く。
あと、Do~Loopはいらない気がする。
hの代わりにiを使ってどうにかできると思うね。
VBA勉強中の者です。 Setステートメントを勉強しているのですが、オブジェクト型についてお聞きしたいです。RangeオブジェクトとかWorksheetオブジェクトなど、いろんなサイトなど見ても使いどころがよくつかめてないです。 どんなときに使うのか、教えてもらえるとありがたいです。
どんなときに使うのか、は一言で言うのは難しいが、基本的には保守のため ・何の変数か分からない時に名前をつける range("a1:b2")だと何の範囲かはワークシート見ないと分からない set 転記元 = range("a1:b2") とすることで、そのrangeが何か一発で分かるようになる ちなみに「何をするか」ではなく「何が入ってるか」を基準に命名すると後で分かりやすい 「何をするか」はfunctionの名前がそうなっているはずだ ・ある変数が2回以上登場する場合、最初に変数に入れておけばそのコードを変更する時に一回で済む まぁこれは説明せんでもええわな ・保守しないならめんどくさいだけじゃん そう、合っている ちゃんと保守できるように書いて置いた方が、長い目で見ると楽なんだ。プラマイプラス
>>184 、185
レスありがとうございます。
185さん
感覚ですが、すごく単純な感じがします。そんな認識でよいです?
ただ184さんのいう
数値と文字列以外は全部オブジェクト
これがひっかかるんです。
range("a1:b2")がオブジェクトという認識でよい?
そのなかに文字があった場合は?
文字列じゃない?と思ってしまうが、それは違うんですよね。
仮に
range("b2").valueだった場合は値で、range("a1:b2")はオブジェクトという事?
はなしがまとまってなくて、すみません。
Excelのシート内部の表位置とかカラム位置とかデータ末尾とか特定するベストプラクティスってどんなんですか! 何十年前からある言語でこんだけ普及してるのにいまだに決まった答えがないとか
>>188 あのね、A1から使うのがExcelの正しい使い方なの
枠やらタイトルやら付けるのはバカジャップの間違った使い方なの
>>186 range("a1:b2")はオブジェクト。この中にプロパティとしてvalueやwidth、heightなどがある
もちろんrange("a1:b2").valueは文字列。
range("a1")に1が入っていて
range("a1")+2が3になるのは、range("a1:b2").valueが自動的に呼び出されて
range("a1").value+2になっているため
MSDNじっくり読んだほうがいいかもな
https://docs.microsoft.com/ja-jp/office/vba/api/excel.range (object)
>>188 最強はこのページの
<S6> 書式付きセルを除外する (UsedRange)
http://www.niji.or.jp/home/toru/notes/8.html ケツから検索して見つかった奴が最後
>>191 レスありがとうございます
誘導もありがとう!
じっくり読んでみます。
わからない所があったらまた聞くかもです。
中途半端な理解は嫌だし。さっかりと理解したいし。
プログラミングを理解するには、読むだけでなくとにかく実際に動かしてみることが大事
>>194 そうですよね
やらないとわからないがほとんどです(T-T)
>>195 脳内変換ヨロシクです
ADO使うと突然落ちるようになった。 何が原因J?
>>198 Microsoft.ACE.OLEDB.12.0
PCによっては普通に実行できるので、原因がわからん。
質問です。 NumberFormatLocal = “yyyy””年””m””月””d””日””(aaa)”で書式の定義を変更しています。 NumberFormatLocal = ●“yyyy””年””m””月””d””日””(aaa)” ●の箇所に文字列を入れたいのですが”●”を入れるとエラーになります。解決方法はありますでしょうか?
>>200 わからんけど、自動記録でやったものをコピペするとか。
マクロの記録取ってみたわ ダブルコーテーションで括った中で、更にダブルコーテーションがいるっぽい 具体てt機にはこう Selection.NumberFormatLocal = """あ""yyyy""年""m""月"""
>>201 解決しました。ありがとうございました。
もしかして、Access2016が入ってると、 Excel2013ではADO接続使えない? Excel2013からAccess2016の参照で落ちるケースはググって見つけたけど、 ウチのはExcel2013からExcel2013で落ちる。
>>190 データとしてExcelを使う場合と、ドキュメントとしてExcelを使う場合とで、考え方がかわる。
>>204 win下をdll検索して、複数見つかったらそれぞれ直接参照設定してみるとか
(単体で動いてるわけじゃない気もするから、期待薄かもしれんけど)
>>206 それもダメだったから、諦めてExcel2019買ったわ。
それだと普通に動いたから、
やっぱりExcel2013とAccess2016の組み合わせがダメだったみたい。
ありがとう。
>>208 Excel2013 ・・・ ADO接続OK ↓ Excel2013 + Access2016 ・・・ ここで突然落ちるようになる ↓ Excel2019 + Access2016 ・・・ 直った! 全部32bit。 本当は64bitにしたかったけど、ListViewとか、 一部使えなくなる機能があるので諦めた。 あ、Excel2013 + Access2016って、インストールの組み合わせ。 別に、Excel2013からAccess2016に接続しに行ったわけじゃない。 落ちたのは、Excel2013からExcel2013へのADO接続。
なんの話をしているのか他人にはさっぱりわからないw
時刻がマイナスの場合 とは、if文でどうやってつくりますか?
>>212 マイナスの時刻など存在しない
If 1 = 2
A-B=C 時刻の差のCがマイナス表示されるセルを if文で 00:00:00 に直したいです
>>214 =TEXT(MAX(0, C), "hh:mm:ss")
VBAは要らん
プログラミングの初歩は大事なんだと思ったよ。 ある値のときは00時00分00秒にするという分岐を思いつかないんだから。
まあMIN/MAXを使って値をキャップするのは正統なプログラミングでは非常によく使われる方法だけど、 事務屋さんには意外と思いつかないかもね
普通に時刻どうしで比較できるから、3分前とかそういうことかと思ってた
>>210 Office製品は基本的にバージョン違いを混在させられるようにはできていない。
その前にいきなり時刻とか言い出した辺りでダメダメ。 人間が時刻と思ってるだけの可能性がある。 セルの書式や変数の型を元に説明しないのは、人間の目線で時刻と言ってる証拠。
VBAでは時刻と時間を Timeでずっとやり繰りしてたのに、c#で TimeSpan発見したときは叫んだわ
え?エクセルをADOでデータベースみたいに扱うこともできるの?
>>226 ちゃんと形式を整えておけば単純なSELECTなら使える
WHEREが機能するだけでOKってことならまあまあかな
JOINとかは当てにならないような気がする
DELETE, INSERT, UPDATE はもっと当てにならない
>>228 他人だけど、ExcelのSQL操作はおまけ機能だから、標準SQLに対応してないから、やってみないとわからない。
>>229 馬鹿は死ねや
Accessのエンジンと同じだろ
>>226 出来るよ。
普通はやらないだろうけど、会社のPCにAccessが入ってないとか、
Accessは入ってるけど、事務のおばちゃんがExcelにしがみついて、
意地でも離さないとか、そういう状況で使える。
>>227 JOINは普通に使える。
>>234 そうか、JOINも普通にできるのか...
「Excelもデータベースとして有効に使えるよね」なんて方向に行って欲しくない、という願望が
俺の心の中にバイアスを生んだようだ
というかPowerQueryやDAXでデータベース的な使い方が出来てしまうからな今のExcelは
エクセルでできるってすごい! そこで疑問に思ったんですが以下のVBA書いてみましたが Dim adoCn As Object Dim adoRs As Object Dim strSQL As String Dim DBpath As String DBpath = ThisWorkbook.Path Set adoCn = CreateObject("ADODB.Connection") Set adoRs = CreateObject("ADODB.Recordset") adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & DBpath & "\SampleData.xlsx;"←① strSQL = "select A,B,C from シート名 order by A desc" ←② adoRs.Open strSQL, adoCn *何か処理 adoRs.Close adoCn.Close 'コネクションのクローズ Set adoRs = Nothing 'オブジェクトの破棄 Set adoCn = Nothing ①について プロバイダーとファイル指定の記述の仕方はあってますか? ②について 列の指定とfromの方法は? 教えてください<(_ _)>
秀和システムでいいから、古本を買って読めよw ちゃんとサンプルが書いてある。アマゾンの古本は激安だぞ。
エクセルをデータベースとして使う記述があるのがどの本なのかさっぱり・・・ できれば本教えてもらえませんか?
>>239 Google検索でもサンプルは山のようにあるぞ。
>>237 何通りかあったと思うけど、
その書き方だと[Sheet1$]かな。
プロバイダーも、adoCn.Providerにも、adoCn.Openにも書ける。
ブック名をFromの後に書く方法もある。
組み合わせは忘れたけど、どこかで指定していれば、
別の部分では省略できる感じ。
https://dotup.org/uploda/dotup.org1847293.xlsx.html 東京・大阪・北海道の各出発時間・到着時間を黄色い部分に「sendkeysで」、「それぞれ東京・大阪・北海道の順序を守って」入力したいです
実際にsendkeysでキーを送るのはブラウザ上のフォームであり、東京の時刻入力→tabとenterをsendkeyしつつ次のページに移動→大阪を入力、という風に処理するため、順序等が変更できません
また入力するのが東京・大阪・北海道だけでないかもしれないので、記載がある行すべてというイメージでお願いします
excelスレでも質問してみてますが、vba専門スレがあることに気付かされたのでこちらでお世話になります
だから、Sendkeysはやめろって。 これはお手軽にその場だけデータを取りたい時なんかに使うけど、制御出来ないから普通は使うべきじゃない。
もちろんそうなんですが自分には IE操作は敷居が高くて、愚直も愚直にsendkeysしか手段が思いつかないもので・・何か代替案ございますか?
inputに文字列入れるだけだろ? ソース見てidだかclassだか取得してポイって入れるだけじゃん
それがよーわからんのです・・ とりあえずググってすぐ見つかるサイトで特に初心者にわかりやすい解説してるサイトでも教えていただけませんか?
IE操作で頑張ってみてるんですが、リンクオープンして開いた別窓を操作するにはまたhtmldocにobjIE.documentを代入して・・ってしないといけないんですか?
>>251 別窓にしちゃう(なっちゃう)とそのウィンドウを探して、html取ってくることが必要になるので、できるなら避ける。
IE VBA
でググれば、参考サイト出てくる。あとは応用しだい
IEでは F12で開くやつも有用
がんばれ
>>252 社内システムなので必ず別窓になっちゃう仕様です
htmlの取り方教えてもらえませんか?
>社内システムなので 多分、このスレ見てる全員ズコーだわ、そのオチ。 システム部門の人に聞いちゃダメなんかい。
CreateObject("Shell.Application").Windows() から探す
excelマクロでのバージョン管理てどうすればいいん 言われるがままに集計マクロ作ったら担当者毎に持ってるマクロのバージョン違ってあの機能が無いとか特殊な状況でエラー出る→それ先月直しましたよ が頻発してる
>>256 サーバー上にマクロ専用のエクセルファイルを置いて、
個々に配っているファイルからはそのマクロを参照させる
>>257 基本それだが、ずっと掴んでるやつがいるとバグ修正や機能追加のときに困る
コード書く画面を 背景は黒に、文字は白に、する方法を教えれ
>>256 OS起動したら、サーバからコピーしてくるバッチ等を走らせる
小さいならいちいちバージョン確認しなくてもよい
みんな一々シャットダウンするのか? スケジュールでコピーだろ
マクロ終了時にマクロ開始から終了までにかかった時間が秒までメッセージボックスに表示するってできる?
>>264 個々人のローカルフォルダにxlam があってそれが定期的に書き換えられるって事?
他のブックがxlamを掴んでる最中でもできる?
>>266 楽勝
Sub foo()
開始 = Now
'処理
終了 = Now
MsgBox Format(終了 - 開始, "hh:mm:ss")
End Sub
>>268 URL春だけでもいいから教えてあげたらw
>>268 はなんとかookスレで最近流行りの流れだよw
>>269 ありがとう!
>>256 起動時に何らかのファイルを参照するようにしておいて、
参照出来たらそのままOK。
出来なかったら、新たにファイルをDLする仕組みにする。
で、更新させたい時は、わざと参照用ファイルを消しておく。
>>273 xlamを共有するならそこのWorkbook_Open にそういう処理を入れておけばいいでしょうね
>>256 最新バージョン書いたテキストかなんかを共有に置いといて、起動時に見に行ってそれより古かったら更新促す警告出すとか
共有パス見て実行とか大変そう面倒そうて主観があったけども Application.Run "共有のパス!マクロ名 " の1行でいけちゃうもんなのか…? とりあえず試してみる すでに誰かが開いてる?とか参照できないときの対処も色々試してみるありがとう
>>277 そっちは使わないかな
俺はボタンにマクロの場所を登録する
ちょっと筋外れるかもしれないけどvbeに行間なく詰めて書いたコードの選択範囲に1行ずつ改行入れるいい方法ない?
そんなのできない。サクラエディタで置換して貼り付けろ
>>280 VBEを操作すればできると思う。面倒だけど
まあ
>>281 の方法が合理的だろうな
>>280 改行コードを改行コード+改行コードで置換
コードウィンドウ内の改行はCRLFじゃなくてLFだった筈。 そんなに難しくない。 でもこれが動く設定はマクロウィルスも動くから危険だよ。 Sub test() Dim strCode As String Dim stRW As Long Dim stCL As Long Dim edRW As Long Dim edCL As Long With Application.VBE.ActiveCodePane .GetSelection stRW, stCL, edRW, edCL strCode = .CodeModule.Lines(stRW, edRW - stRW + 1) .CodeModule.DeleteLines stRW, edRW - stRW + 1 .CodeModule.InsertLines stRW, Replace(strCode, vbLf, vbLf & vbLf) End With End Sub
専用のメソッドがあるのが凄いわ。 何を想定して用意してあるんだろう? プログラムがプログラムを書き直すAIにでも使うのか?
Application.VBE.ActiveCodePane こんなの合ったのか PaneはPanelかと思ったら、ペインの事なのね
VBEを拡張するためのオブジェクト群が用意されてるんだよね
Excel4マクロは自己書き換え自由だったから 機能的に負けるわけにはいかなかったんじゃね?
配布済マクロの修正パッチとかで大量のファイルや行を一括修正したいときは便利
マクロ4はできる人がいない+やりたくないから単価超高いぞ で、単価高くしても足が出る・・・
実行から終了まで数分かかるマクロを途中で止める方法ないですか?f4押したら「処理を止めました」のメッセージボックスとともに停止するとか。
ループが長いならDoEvent入れておいて msgbox "終了します"とendだけ書いたのを起動できるボタンどっかに置いとけばいい
ESCやBreakで止まるなら良いけど、それで止まらない処理ならウィンドウESC押しながらタスクバー上でマウスでウィンドウの切り替えをすると止まる。 どっかのブログで見て知ったけど役に立ってる。
2009/12/16に公開って何だよ。 20年くらい前に見たぞそれ。
>>298 映像はどうみても20年以上前だな
的確な対応で現在も使える
セルの値を数式に代入って無理でしょうか? たとえばA1セルに乱数が入ってた場合に どっかのセルに =A2-乱数 という数式を代入したい感じです
いやセル番地じゃなくて値を数式に代入したい感じです たとえばA1セルに2,134という数字が入ってた場合に =A2-2,134 という数式をどっかのセルに代入 A1セルが387だとしたら =A2-387 説明下手糞で申し訳ないです
>>300 書いている意味がよくわからんど
セルに式でも値でも代入できる
ただ、乱数は曲者で常に変わるから
もう少しやりたいことを具体的に書き込もう
>>303 乱数は曲者で
A1セルが387だとしたら
=A2-387
ほかのセルに「=A2-387」を入れた時点でA1セルは変わるから
もう少し何をしたいのか書くように
そもそも数式はスレ違いだろ VBA関係ないならどっかエクセルの使い方の板かスレかさがせ
>>305 A1セルの乱数結果が現時点で387だとしたら
変数(仮にrとする)に、387を格納して
ほかのセル(仮にB1とする)に"=A2-r(中身387)"を入力したいって事?
それなら確かに関数じゃできないよね
>>303 Range("C3").Value="=A2-" & Range("A1").Value
じゃ駄目?
>>307 それに意味あると思えない、乱数なんてふつうは仕事に使わない
例えば、学校の先生あたりが、引き算足し算などの問題を自動的に作りたいとか
であれば、A列に乱数1の結果をB列に乱数2の結果を
C列に計算式を、D列に回答をで別シートなどで問題文を作る
このぐらいだな
>>309 ちょっとしたシミュレーションで使うかもしれない。(Excelでやるとは言ってない)
>>302 じゃダメなの?
>>311 ちょっとしたシミュレーション・・無いだろ
この文書力だとセルに入れたい式って
計算式の文字列かもしれん
もうあれだ。 ここは、何の用途に使うのか当たられたやつが優勝スレにしよう。
別に用途は何でもいいさ 興味ゼロってわけじゃないけど
こっちで作って欲しいと言われたものをつくってると そんなもの作られたら困る 楽になって人が減らされると困る、と古参がちくちく この古参、自分の作業を楽にしたい時には これがもう偉そうな態度で、「作らせてやる」とでも言わんばかりに頼んでくる どうしたいんよもう っていうことないっすか もう面倒なんで職場で作るのやめようかな すんません落書きしちゃって
厚労省で配布されている
https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/000116890_00001.html にある
https://www.mhlw.go.jp/content/10900000/000494621.xlsm なんだけど、内容は単純で
1件いくらの検査があって、件数を入力すれば請求書が作成されるというもの
1シート=1自治体なので、複数の自治体へ請求する場合は、ユーザーがシートコピーして作る
VBAで各シートを集計して総括表に転写する
なんだけど、VBAみて
変数が多すぎてコーディング中に間違えても気づかんだろってのと
引っ張ってくるセルをConstで決め打ちしてるけど
これ後のメンテナンスでセル一個挿入することになったら修正大変やん と思いました。
というか、エラーメッセージの所で間違えて
行を表示すべきところを列表示しているけど
これこそ変数多すぎて分かりにくくした事が原因だと思います。
じゃあどうする、と言われたらみなさんならどうしますか?
同じ形の複数の2次元の表を合計するだけなんだから
スタート地点とゴール地点決めてやって
後はずらしていけばいいやんと思うのですが
後、小数とか負の値ぶっこんでも動作するのはモヤモヤするんだけど
まぁこの辺やりだしたらキリがないので使わせる相手によってどうするかは変えますかね
>>316 義務教育でプログラミングを扱うようになって、自分の仕事くらい自分でプログラミングできないようでは大変な事になるよ、
と教えてやればいい。
もしかしたら「手下にプログラミングさせればいい」と勘違いするかも知れないが、
それでは通用しないよと言ってやろう。
こういう話もあるし
https://lite.blogos.com/article/376203/ >>316 ただ単純に業務全体を見ずに作るから役に立たないんだよ
業務に対して目的と効果を文書ではっきり示せば古参の意見を聞かなくていい
>>317 べき論の先には「VBAを使うのをやめるべき」という結論しかないから不毛よ
俺ならどうするか?下請けに丸投げして終わりだよ
>>318 >義務教育でプログラミングを扱うようになって、自分の仕事くらい自分でプログラミングできないようでは大変な事になるよ
脅かすことでプログラミングができるようになるとはおもいませんが…
プログラミングって極めて創造的な作業ではないでしょうか、似たようなものは数学の証明問題だと思いますが証明問題を脅かして解けるようになるとは思えません
機械学習やweb系ならともかく、 VBAレベルなら極めて事務的な仕事だろう。どこにも創造性なんて無いよ ルーチンワークを自動化させてるだけ
>>324 でもそのルーチンワークを実際に記述するとなると一本道というわけにはいかないでしょう?
論理的な一貫性を維持しながらしたいことを記述するのは、いわれているほどやさしい仕事ではない
>>325 一本道だよ、全然難しくない
強いて言えば例外を先に全部列挙した上でシステムに放り込むという順序の変更がある程度
面倒なのは仕様変更と、使いにくいというオバハンの嬌声。オバハンにalt+F8は覚えさせたけど、まぁそれぐらい
まあ、自己満足で終わるなら簡単だな おばはんにも満足いくように作るんだよ
>>323 それもそうだが、その老害を大人しく
させることができれば上出来と考えた
Excel2016にてpersonal.xlsbに「保存せず閉じて開き直すマクロ」を作ったところ挙動が変です Sub ReOpen() Dim wb As Workbook Dim path As String Set wb = ActiveWorkbook path = wb.fullName '※1 If MsgBox("本当に変更を取り消しますか?", vbYesNo) <> vbYes Exit Sub End If wb.Close(False) Application.Wait([Now() + "00:00:01"]) '※2 Workbooks.Open(path) End Sub このマクロ自体は動くのですが、※1のIf~EndIfを消すと※2のOpen実行直後にExcelが通知無く落ちます また、※1※2を両方消してマクロ実行した後、手動でブックを開き直すとやっぱりExcelが落ちます 対象のブックはフォームやマクロを含んだ3MB程度のxlsmファイルです MsgBox出さないだけでなぜ不安定になるのか、思いつく原因を教えて頂けると幸いです
あ、Ifの末尾のThen忘れたので脳内で補完してください
>>331 ハイ イイエ が逆なのも利用者が自動変換するんですね
>>330 2019で試したけど落ちなかった
> Application.Wait([Now() + "00:00:01"])
これを抜いても同じ
カンで答えると、再計算が邪魔してるような気がする
・一度再計算や描画、イベントを切ってみてはどうかな
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
・あとはこの部分のウェイトをもう少し長くする
>Application.Wait([Now() + "00:00:01"])
・まっさらなブックで試してみる
アドインって、ファイルを閉じたら、 一緒に閉じられるものだと思ってたけど、 VBA実行中は残るということか。 一緒に閉じられたら、途中で止まっちゃうからな。
エクセルの機能に追加してるからな アドイン使ったファイルをアドインがないエクセルで編集すると壊れるよね
>>330 経験上納得できない動作をするときは何か見落としているところがある
step実行で場所特定して、各変数の値が壊れてないか確認
イミディエイト画面で入力してみるなど
Excelに限って言えば、Excel自体に変な仕様が多い これが男を惑わせる
>>334 元に戻さないアホがいると大迷惑になるな
>>335 アドインはExcelに組み込むよね
>>339 配列数式なんか使うとブーイングになるよな
以下の状態だとB1~B3は全て1:1048576と表示されてしまいます Cells.SpecialCellsをRange("A1").SpecialCellsに変更した場合はB1~B3は全てA1と表示されます Ctrl + Endで選択されるセルの番地を文字列として取得するにはどうすればいいですか? A B 1 Sheet1 =fn(A1) 2 Sheet2 =fn(A2) 3 Sheet3 =fn(A3) Public Function fn(sSheetName As String) As String fn = ActiveWorkbook.Worksheets(sSheetName).Cells.SpecialCells(xlCellTypeLastCell).Address(False, False) End Function
関数呼び出しではなくマクロやボタンクリックでなら問題なかったので そっちの方法に切り替えますすみません
入力項目を複数用意したinputboxって作れますか?
>>343 ごめん入力フォームじゃなくていいかも
最終的にやりたいことは、以下のボタン等が設置されたユーザーフォームを作ることです(他の要素も考えたら普通にinput boxでは無理と気づきました)
・AUTO openで開く
・押すと特定セルに文字が入力されるボタンを複数設置する
・カレンダーを設置する
・押すと印刷処理を行いつつファイルを上書き保存し閉じるボタンを設置する
>>345 こんな特殊なものAUTO openでやるって非常識だな
シートのマクロで十分だろてかマクロは印刷して保存だけでいいだろ
それも自動記録でも十分
>>345 それユーザーフォームにする必要がないような
ユーザーフォーム超めんどいから止めたほうがいいよ
あと、カレンダーはデイトピッカーと言う
この程度の理解力だとカレンダーが必要かもわからない カレンダーなんか別にシートでもできるけど、どこまで使うかがわからないから 最適な解もわからない 入力をシートに反映するなんて普通にセルを参照すればいいだけ ExcelもVBAも1%以下の理解で動作仕様を描くのではなく結果で何をしたいかを描くべき これでも少しおだててるが
>>350 いや~そうでもないよ
理解力は両方とも0.1%~0.01%程度と思ってたから
てか、みんなが
>>345 ←この説明で全容を理解できてるのがすごいとおもったけど
いろんな意味に解釈できそうで、おれにはそのうちの一つには絞りきれないんだけど
>>352 教えたい人種の大半は問題の表層を自分の得意分野に転換して持論を得意気に展開してるだけ。
質問者の問題の背景に寄り添って解決を計ろうとする者は僅か。
>>352 どういうパターンであれ、大体ロクでも無い物だという判定ぐらいなら可能
>>345 ここの人達はマウント取りたいだけで実際はあまりスキルが無い人が大半なので程々に聞いていた方が良い。
あなたの要望については疑問が1つ、可能だけどあなたのスキルから考えて技術的に難しい点が1つある。
疑問は、AutoOpenで開いて、閉じるボタンで保存終了するのならExcelで作る必要は無いのでは?という疑問。
普通にC#辺りで作った方が適してると思う。この後に述べるけど、カレンダーの件もC#等の方が簡単。
技術的に難しいのはカレンダーの実現。
サブクラスとWin32の知識が無いと難しい。
後々を考えると汎用的にクラス作った方が良いからそういう技術も必要。
もっとも、ファイル追加とか自作するとかで良ければスキルが無くても出来るともいえる。
>>355 この人はマウント取りたいだけで実際はあまりスキルが無い人なので程々に聞いていた方が良い。
>>355 具体的に簡単にできる方法を説明してやれよ
>>358 まだ出せない
要件定義ができていないので、そもそもどういう設計が最適かも分からない
現状のまま作るのはめんどくさすぎる
具体的に言うとデイトピッカー、お前だ
>>359 要件定義・・?この理解力だと
当然仕事に対する理解力もないってことだよ
>>360 そこを何とかするのが面白いんじゃないの
マウント取りたいならハエやカエル相手にしてればいいだけだしね
>>361 だったら適当にすれば(笑)
出来ることを安易に提案することの影響を考えろよ
例えば、自動計算を止める
こんなのそのままにされたら困るほかの人いるだろ
でも単にONとOFFじゃあだめなんだよ、直前を記録して戻す
また、エラーや中止でも戻さないとな
>>361 きみはハエやカエル相手にして面白がってる
引きこもりさんってことね
おだてるの意味もわかってないみたいだし、韓国の方でしたか そりゃ話も合わないな
>>369 これで問題ある場合はループしてるロジックが悪いか
ネットアクセスではありませんか?
>>370 運用方法が急に変わりまして・・
毎日 100ループ→毎時間 20000ループ
他の高速化が無いものかな、と
特になければ諦めてロジック組み直します
>>371 セルへのアクセスを減らし
変数テーブルで処理をするぐらいかな簡単なのは
変更のないセルはかきかえない 変数の型をこていするかな
>>369 完全に嘘。
そもそも、それなりに書ける奴ならこの手法では速くならない。
逆に、これで格段に速くなったら恥ずかしいと思うべきだ。
>>345 できるけど、一番最後の処理が事故を起こしそうだから1クッション置いた方がいいかも
セルというかシートは使わない データ保存には外部バイナリファイルを読み書きする
>>369 これは描画を抑制するからその分の時間がかからなくなるというだけなので、表示に因らない処理の速度アップはまた別だよ
何でユーザーフォームを使うのかって? シートに書くより格好いいからに決まってるじゃんwwwww いや、わりとマジでそんなもんだと思いますけど。 だって、ユーザーフォームじゃなきゃ再現できないようなものって、 普通の事務処理でそんなに無いでしょ。
ワークシートのイベントに重めの処理を書いている場合、シート側のイベントを避けるためユーザーフォームで出入力制御や演算を処理させることはある
入力のしやすさとかフォームの方が良い場合もあるし、ユーザーインターフェイスとしてはフォームの方が優れている。 Excel使わずにメモ帳とCSVで事足りるってのと同じような考えの人がいるな。
初心者レベルの知識で長いことVBAいじってる者なんだが、 functionプロシージャって使わなくない? 普通のsubしか使ったことない どんな時に便利なの?
>>384 値を返す時。便利というか必須。=sum()で値が返らなかった時の事を考えてみると良い
むしろfunctionが普通なのだ
vbaの場合、ワークシート変更しておしまいってパターンが多いから恩恵を得にくいけどね
Findを利用したコードについて教えて下さい。 書籍、サイトで掲載されていたコードを利用し、少し変えたものです。 Findメソッドを使ってC列の”たろう”を検索します。 探し出したら、A~C列の文字列をE列に結果を返すように作り替えてみましたが、結果がE1~G1に上書きされてしまいます。 Cells(Rows,count を理解しきれていない、11行目のCells(i,”E”)の部分も理解していないと感じます。 どのように違うのか、ご指導お願いします。 ワークシートはこんなかんじ E列からG列は実行後の結果をイメージしたものです A B C D E F G 1 日付 売上 担当者 000 AAA たろう 2 000 AAA たろう 333 DDD たろう 3 111 BBB はなこ 4 222 CCC たかし 5 333 DDD たろう 6 444 EEE はなこ 7 555 FFF くみこ
386のつづき Sub Find() Dim temp As Range, tempAddress As String, i As Long With Range("A1").CurrentRegion.Resize(, 1).Offset(, 2) Set temp = .Find(what:=“たろう”) If Not temp Is Nothing Then tempAddress = temp.Address i = Cells(Rows.Count, "E").End(xlUp).Row Do temp.Offset(columnoffset:=-2).Resize(, 3).copy Cells(i, "E") Set temp = .FindNext(temp) Loop While temp.Address <> tempAddress End If End With End Sub Sub copy() Range("A:G").Clear Worksheets("template").Range("A1:C7").copy Destination:=Worksheets("Sheet1").Range("A1") End Sub
>>385 うーん、値を返すのは分かるんだけど、わざわざsubから取り出す意味が分からんのよ
subの中に入れちゃえば良くない?
コードが長くなる時とか、他のプロシージャにも流用したい場合なんかにfunctionで別プロシージャにしとくと分かりやすいってこと?
そういやfunctionを関数みたいに使う場合もあると聞いたな
>>384 >>385 意見に賛成だが少し付け加えます。
基本的にsubにしろfunctionにしろ長くだらだら作らない
出来るだけ意味のある汎用性のある処理はそのルーチンを呼び出すようにする
その時に値を返せるfunctionの方が圧倒的に有利
初心者は同じようなルーチンをコピペで増殖させるが、後々メンテナンスに困る
それらをライブラリーとして持つと自分の資産になるんだけどね、それが重要なんだよ
>>384 ネタでしょ?
モドリッチがない方が便利だなんて、そんな訳ないじゃん
>>389 あーその説明で分かった ありがとう
たしかに今までは、動けばいいやで作ってたからコードが長くなってた
顧客コードから各データを検索する時なんか、
Cells(i,2).value=Range(Z:Z).Find(Cells(i,1)).Offset(0,5).Value
みたいなコードを10行とか書いてたわ
OutlookのVBAもここで可でしょうか? 違ったら誘導お願いします 上司へ「承認お願いします」と言った趣旨のメールを送った際、上司がボタン1つで承認する旨のメールが送れるようにしたいです しかし複数いる上司全員にマクロの設定方法を教えるのは面倒です 私から送信するメール本文にマクロを組み込み、上司が受け取った際に本文にあるリンクを押せば(マクロを自分で設定していなくても)返信メールが自動作成されるような手法が取れればベストなのですが、そういったことは可能なのでしょうか?
>>392 ウィルスメールの作成方法きいてる様なもんだなw
>>392 まずは社内でOLのセキュリティ設定がどうなのか。
ザルならやりようはいくつもあるが、ガチガチなら選択肢は少ない
>>392 まあ、バカ上司をサポートするのと
バカ上司の影響をサポートするのと
どちっがしたいんだ?
>>388 VBA初心者にありがちな意見だね。
プログラムを組む時の考え方が全く違う。
組める奴なら最初から構造的に考える。
動きゃ良いなどと考える奴はいない。
>>392 マクロでやらなくても承認ボタンを追加する機能があった筈だが。
> VBA初心者にありがちな意見だね。 はい、きょうもマウント取りたい人が来ましたよ
>>391 >>389 の言ってることは全くその通りなんだが、FunctionにしろSubにしろ、内容が汎用的なものをまとめる、同じような処理を纏める考え方をするようになると最初から構造的に組むようになる。
その方が圧倒的に楽だから。
あと、例に挙げてるコードは良くない。
ブックやシートの省略はバグの元。
>>398 マウントも何も、明らかに初心者なんだから仕方ないだろ
> VBA初心者にありがちな意見だね。 この部分は必要なかったんだよなぁ
>>402 君はそう書かないと回答できないのか、なるほど
興味深い
>>386 >>387 話題を気にせずに、切り込んだ形で質問をしてしまいました。
ホントに困ってしまったのでココで質問をしてみましたが、割り込んだ形でご迷惑をおかけしました。
VBAなんでも質問スレで聞いてみます。
お邪魔しましたm( _ _ )m
>>404 構造的に考えるべきという意味付けの為に必要。
初心者にありがちだということで、初心者からレベルアップした方が良いということになる。
>>405 別に迷惑でも何でも無い。
元々、初心者の質問に難癖を付けた奴が悪いと思ったから
>>355 を書いたんだが、内容を見ずに変に絡んでくる奴が出てきただけのこと。
マウントしてると誤解を招くような 会話しかできない奴は能力低い奴多い 他人の意見も聞かないしね。 傲慢が後に返り討ちにあう
>>397 こんなんあったんですね!
自分で作るなら他にも機能足してたかもしれないけど、これなら簡単で皆で使えるからこれでいきます
ウイルスメールの作成方法……確かに……
>>410 誤解を招く前に、プライドに触ったのか碌に内容読まずに絡む奴の方がよっぽど問題だと思うが。
>>410 マウントしたい奴と思ったら絡むなよ
意味もなく伸びrだけ
>>384 functionなら1行で書ける!
と思ったけど、よく見たらどっちも2行かかるな。
Dim A
A = function()
Dim A
sub(ByRef A)
functionのメリットって何だろ?
1個しか返せないし。
>>415 教えてほしいなら教えてくれと言えば良い
君以外全員わかってるぞ
>>416 容赦なくてワロタw
>>415 If func(x) Then
とか
func1(func2(a), func3(b))
とか
>>415 1個しか返せないといっても工夫の問題。
配列で返せば実質何個でも返せるし、Collectionで返すこともできる。
クラスインスタンスを返すなんてことも出来る。
どれも普通にやることだよ。
何を返せば使いやすいかを構造的に考えて人間にとってピンと来るように組めばメンテナンスも楽だし、プロシージャの内容も理解しやすい。
初心者のコードは何をする処理なのか全く分からないことも多いが上級者のコードは考えて組まれてるので理解しやすいんだ。
>>416 >>417 罵倒するだけで内容を書かないんじゃ君らのレベルも押して知るべしだな。
>>418 むしろ
Function Hoge(Arg() As String) As String()
の方が適切かな。
或いは
Function Hoge(Arg() As String) As Collection
とか。
>>419 AddressOf で関数を返すことすら出来るのだ
IF Func() Then とか Loop Until Func() なんてのがSubでは代用しにくい使い方だな (できないとは言わないが) むしろ普通の数式で A = Func1() + Func2() + Func3() みたいに書きたい時の方が、Subに置き換えた時の無駄が多くなりそう
2年ぐらい前にもSubとFunctionに違いなんかないと言い張る粘着がいたのを思い出した
・Sub ・返り値のないFunction この違いは何ですか?
戻り値ないならsubでいいじゃんって話だと思うんだけど俺も一応はそう思う 昔はsubばかりで書いてた subは単体で実行できるけどfunctionは単体では実行できないという違いがある functionは他から呼び出さないと実行できないという意味でね。 ここからは俺の好みみたいなもんだけど、 ボタンに直結してるようなエントリーポイント的なものは subで書いて、それ以外、特に引数を受けとって処理するものは 単体では実行できないことを明確にする意味で全てfunctionにしてる そう論理的で整合性のある区分というわけではないんだけど。
>>428 単体で実行できるかどうかはSub/Function の差じゃなくて、引数を取る/取らないの差じゃなかったっけ?
>>429 正解
Sub foo() '単体実行可能
End Sub
Sub bar(baz) '単体実行は出来ない
End Sub
あと、実行可能かどうかはpublic/privateで切り分けるべきだろう
セルに式として関数を入力して呼べるFunctionと呼べないSub
>>432 あれ、じゃあ何のためにsubって存在するんだ
return 0しなくていいってだけ?
基本はfunction スクリプトとして何かをさせたい時にだけsubで定義する。C言語で言うint main(){} 戻り値や引数のありなしでは切り分けない と考えると自然と思うんだけど、どうだろう この考えだと、private subは使うべきじゃないって事になる
別に良いんだよ何を使おうと、まあ好きにすればって程度 まあ、ただ論理的に考えずごみを量産するやつはいるな
>>426 戻り値のないFunctionは存在しない
戻ってきた値を無視することができるだけ
つまり戻り値を格納するためにメモリを必ず使うから、Subと比較して速度とメモリ効率の2点で不利になる
>>433 今から40年以上前、それまでのシーケンシャルなプログラムでは能率が悪いから構造化しようという話しが出て、その時に提唱されたのが「手続き(Sub)」と「関数(Function)」という概念
しかし、教育用として作られたPascalという言語では忠実に実装されたけど、C言語には関数しか用意されなかったし、その後に登場したJavaも関数しかない
結局は言語を設計した人のリテラシーというか、単なる好みで決まったようなもん
今でもたくさんの言語が乱立してるのは、結局はみんな「ぼくの考えたさいきょうのげんご」が作りたいだけと思って、あながち間違いじゃない
>>438 ネタじゃないよ
リカーシブなプログラムを書いてみればすぐわかる
VBAでもFunctionは呼び出すたびにヒープを最低4バイトずつ消費するから、再帰の最大回数が少ないのは簡単な実験ですぐに確認できる
>>439 ありがとう!そういう事か
sub便利だけど、便利過ぎてかなり変な事になってるね
subから呼び出すのはfunctionと決めていれば良いんだろうけど、
でもsubからsub呼び出す事もあるから・・・
結局subって意味なくね?
C言語のsub無しが正解のような気がする。
>>441 なんでネタと思うんだ?
簡単な実験 Funcの方がメモリをたくさん消費するから繰り返せる回数が少ない データキャッシュも有限なリソースだから、どちらでもいい時はFuncの方が不利 Sub sub_test() test_sub (1) End Sub Sub func_test() test_func (1) End Sub Sub test_sub(n) n = n + 1 Debug.Print n; test_sub (n) End Sub Function test_func(n) n = n + 1 Debug.Print n; test_func (n) End Function
Selenium+vbaを使って ChromeでWebページをPDF保存することは可能でしょうか?
>>442 だから構造的に考えて意味的にFunctionが適するかSubが適するかを選択するんだ。
意味的にというのは人間の感覚にとって合った方を採用すべきということ。
Cだってvoidがあるじゃねーの。
無理矢理1を返すとかすれば戻り値が絶対に必要な言語設計だってできた筈。
なんでvoidがあるかといえば、やっぱり意味的に戻り値無しが人間にとってピッタリ来ることがあるからだと思うが。
処理結果をpublicで判断するよりは 値を返すほうが使いやすい
プログラムを一人で作って自分だけが永遠に保守するなら好きなように作ればいい 大規模なアプリをチームで作ったり、他人が修正したりする時には間違いを起こさないようにルールを決める必要があって、 経験上、カプセル化した方が結果的に安全で能率がいいということになっている そのための手法の一つが変数のスコープを狭くすること、グローバル変数は使わないこと、なんだな だから結果はどこかの変数に入れるんじゃなくてFunctionで返すんだよ 複数の値を返したいなら設計を見直すべきで、構造体を使うか、1つずつFunctionを分けるか考える
>>445 SeleniumではなくSeleniumBasic
の間違えでした。
ごめんなさい。
グローバル汚染はマジでエグいからな
「name」「mail」この変使われてたら超めんどい
>>449 Selenium使えばいいんじゃない
seleniumってもう使い物にならなくなってなかったっけ
>>452 それって日本昔話に載ってる?
今も気にすること?
使うスタック量によって再帰での有利不利って理屈の上ではあるだろうけど 現実的な意味ってあるの? 条件によってスタックオーバーフローする「かもしれない」プログラムに対して 引数や返り値を考慮とか再帰深度に気を使うとか、ちょっとVBAで考えられないんですけど
>>454 SubとFunctionでメモリ効率の違い考慮するレベルなら
>>454 別に気にしなくてもいいけど
>>440 みたいなツッコミ入れるならちゃんと理解してないと恥をかく
>>457 おれも、昔話書きたくなったレベル
z80とか8080とかな8086なんて凄いよな
ここできいていいのか分かりませんがマクロの組み方で教えてください 「=5月シートA1」 「=5月シートA2」 みたいに引っ張っているセルを 「=6月シートA1」 「=6月シートA2」 みたいに変えるマクロを組みたいんですが それを毎月自動で7月、8月、と月に合わせて変えるのはどうやるのですか? 理想としては、5月と書いてあるセルを6月と入力し、そのセルをコピペしていくマクロを組みたいのですが、その流れを作っても元の5月だけがコピペされてしまう状態です。 説明が下手ですみません。
今月=month(date) activesheet.range("a1").resize(5).formula="="&今月&"!a1"
>>459 5月シートをコピーして6月シートにする。
5月を6月に文字列全置換え
処理日によって月を自動判定でもいいが、フォームで値を確認、修正後に実行の方がいいんじゃないかな
>>460 すみません初心者なので詳しくは分かりませんが、今の月を参照するセルを作り、それをコピペするように組めばいい感じでしょうか。
間違ってたらすみません。
>>461 今まではそうやっていたのですが、それ以外にも、不要な場所を削除して、一番下の数値を一番上に持っていってみたいな作業があるので、その置き換えも合わせてマクロにしたいと思いまして。
>>462 今月の月を取得して、a1からa5までの数式を置き換えるイメージです。
携帯からなので試せていませんが・・・
>>464 文字列の検索や置換は数式にも有効
5月を6月に置換すればいい
VBAは必要ない
>>459 他の処理はともかく数式に関してはマクロいらない
=INDIRECT(MONTH(NOW())&"月!A1")
間違えたわ、こうだわ =INDIRECT(MONTH(NOW())&"月!A"&ROW(A1))
なんか、今月にこだわる人多いが説明だと選んだ月のシートからデーターを 持ってきたいだけだろ、勿論INDIRECTを使うことでマクロを使う必要はない 例えば、値を参照するシートとのA1セルに入力規制で1月~12月を選択して =INDIRECT($A$1 & "!A" & ROW(A1)) でいいだろ
>>468 > それを毎月自動で7月、8月、と月に合わせて変えるのはどうやるのですか?
>>469 自動だったらA1セルをNow()にして表示形式を
月だけにすればいいだけだろ
各セルに設定する関数は簡素に共通化する
>>471 今月か選択なんてExcelをちょろって知ってればどっちでもいいんだよ
1っか所変えただけで要は1っか所を変えただけでその月に対応すればよいだけ
こんなのマクロなんか書いたら笑えるレベル
なんかVBA使わずにワークシート関数使えっていうコンセンサスでもあるの? 思い込みと違う?
>>459 お題は
>理想としては、5月と書いてあるセルを6月と入力し、そのセルをコピペしていくマクロを組みたいのですが、その流れを作っても元の5月だけがコピペされてしまう状態です。
だけどな、マクロを使わないと気が済まないやつっているのかな
>>474 これでマクロを作るやつのマクロを参考にしたいな
ぜひ作ってね
>>474 数式だけならファイル形式をxlsxのままにできて安全
同じ機能なら数式で済ませた方が良いだろう
家計簿ならどっちでも良いのは間違いない
まあなんだな、$A$1この書き方って絶対参照だが良くないんだよな 普通はそのセルに名前を付けてその名前で参照する 例えば「設定月」みたいな名前ね
>>472 >>462 > それ以外にも、不要な場所を削除して、一番下の数値を一番上に持っていってみたいな作業があるので、その置き換えも合わせてマクロにしたいと思いまして。
シートを左のものからきっちり順に印刷する(印刷指示を出す)vbaありませんか? スプール云々はプリンターの詳細設定弄れなくなってるのでvbaでどうにかなればしたいのですが・・
Excelの関数や機能も知らん奴がVBAでマクロを作るか 少しは勉強しろよ、ってか 運転できないやつが、自動運転を作るみたいなもんか? ってか参照で十分なものを何でマクロ(笑)
>>482 >>459 > 毎月自動で7月、8月、と月に合わせて変える
>>468 > 今月にこだわる人多いが
>>462 > その置き換えも合わせてマクロにしたい
>>472 > こんなのマクロなんか書いたら笑えるレベル
一部読み飛ばして回答してしまうのはなんなのネタなの
>>480 すまないが、そんなのどうして関数でできないと思うんだ?
ちゃんと説明すれば?、今まで書いているのはあまりにも簡単な質問で
関数で十分なんだが
自動車つくれなくても、つくってもらって乗ればいいじゃん
>>486 でも、企画があってな わけなわからん奴の作った自転車に
乗れるか?
責任は運転者だよ、関数は規格通りだな
その自転車がすごきゃいいよ、単に危ないだけじゃな
>>483 で、お前は何ができるんだ?
何が気に障った?(笑)
>>483 VBAで提案できないやつが・・・・
ネタだよな・・関数なら即座なのに
>>489 今月にこだわっててもおかしくないし
一連の流れをマクロにしてその一部の質問してるわけでしょ
だから
>>468 も
>>472 も的外れって話
訂正するわけでもないのに再アンカをしかも連投するってせっかちすぎない?
>>490 今月とかどうでもいいんだよ
単に参照すればいいだけ、それで質問者の意図に対応できないか?
自分の主張じゃなく、何が正しいかで提案するんだよ
VBAで作れば何でもできるさ、でも単に絶対参照でいいものをこねくり回すなよ
>>491 次は話ループさせんの?
「毎月自動、VBA」という質問の前提をこねくり回してるのはそっちでは?
何だろうな、普通に絶対参照すればいいものをVBA・VBAって叫ぶの 怖いは
>>494 >>459 >>462でマクロでやりたいと言ってるし、
マクロ以外の回答に対してノーリアクション
数式での回答を求めてないのだろう。結果を求めるだけじゃなく、マクロ自体を書きたいという質問者もいるわけだしな
あまり押し付けるのもどうかと思う
もちろん一般的な場合は君のやり方が正しいのは明らか
さすがにそれが分かってない人はいないだろう
>>462 削除等はマクロで、他シート参照は数式でいいんでないの
元の前提無視して絶対参照・絶対参照って叫ぶの 怖いは って言えばいいのかな
>>496 削除が必要って単なる思い込みではないのかな
Excelの使い方もわからないのってVBAって魔法の玉手箱じゃないの
でなければ、質問者に対する最適の解をさっさとVBAで示せばいいんだよ
元々の質問を見る限り、詳細が無いのでVBAで解決すべきか数式で解決すべきか判断できん。 逆に言えばこれだけの情報でVBAを必要無いとか言ってしまえる人って初心者とまでは言わないけど大したスキルは無いんだろうなと思ってしまう。
>>500 初心者は自分の状況を上手く説明出来ないし、それはしようが無い。
一方回答する方も、初心者は自分の狭い土俵で回答しようとするんだよね。
>>502 俺はこんな質問に回答しないよ。
何処の掲示板でもそうだけと面白いテーマじゃなきゃ回答しない。
俺が回答する必要も無いだろう。
>>460 とかを見てどうにか頑張れば良いんじゃね?と思ってる。
技術レベルは大したことない問題だけど最近回答したのは
>>284 だな。
テーマとしては面白いから。
>>498 むしろ思い込み(というか自分の都合のいいように解釈)してるのはそっちなんだよなぁ
>>503 君に、回答を求めてないよ
俺も、VBA の回答は基本的に出さない
まあヒントだけだな
いや~これのマクロを作る奴見てみたい(笑)
というか
>>499 に書いた通り、状況を判断する材料が少ない。
例えば月のシートが沢山あって、それぞれのシートの集計結果を集計シートで閲覧したいという状況なら数式の方が良さそうだ。(それでも情報が足りないから「良さそう」としか言えん。)
>>507 じゃあ、俺に
>>502 のレスするんじゃね―よw
>>499 ほんそれ
ど真っ赤で力説してるのが滑稽やなw
VBAでやるか数式でやるかの判断はこのスレでやる話じゃないだろ ここはVBAのスレだぜ
>>511 ???
"
>>501 "を付けるなと言ってる。
>>481 dim ws as worksheet
for each ws as thisworkbook.worksheets
ws.printout ~
next
>>514 大荒れの中レスありがとう
来週試してみます
>>515 ごめん for each ws in の書き間違い
>>513 ふん、おれ500 お前が笑えるレスつけただけだろ
>>517 もちろん全シート一括で印刷かけてるんですけど、スプール設定?の関係で重いシートの印刷が後回しになるので10ページ1ページ2ページの3シートのファイル印刷すると10ページのシートが一番最後に印刷されちゃって不便なんです
ListBox使ってるんですけど、たまに表示がバグります 薄い横線がListBox内の全ての行間に表示されちゃうんです 行のフォーカスを動かすと、動かした範囲ではこの変な横線は一旦消えるんだけど、 何かをするとまた横線があらわれる こういうのって何が原因かわかりますか? 再現性がそう高くないので、対策しづらいです 表示がおかしいだけでプログラム自体は問題なく動きます
>>520 ですけどもしかしたら直ったかもしれないです
multiSelectをfmMultiSelectExtendedに設定してるんですけど、
UserForm Initialize内で設定するのではなく
プロパティウィンドウで選択して設定するようにしたら今の所出ないです
再現性があれなんで確実とは言えないんですけど
>>520 ListBoxに限らず、Excelのオブジェクトは変だよ。 そんなもんだと思う。 俺もこんな現象に遭遇した。 ・印刷プレビュー直後に、リストボックスを操作できなくなる。(シートを切り替えると直る。) ・MSクエリやADOを使うと、ボタンやテキストボックスの位置が、見た目と合わなくなる。 [コマンドボタン] 何もない部分 ↑ ↑ ここにボタンがあるのに ここを押さないと反応しない あと、なんじゃそりゃ!???? と思ったのが、 [コマンドボタン] ↑ 押すと・・ →→→ [コマンドボタン] ↑ ボタンが逃げる 多分、押す前のボタン画像が左にあって、 押した後の(凹んだ状態の)画像が右にあるんだと思う。
>>523 論理的に解決できる方法がないから山勘に頼っていじってみて
運良く解決できたらもうけもんってことですかね
表示がぶれると、使ってる人が、このプログラム大丈夫かと心配し始めちゃうんで
できるだけ避けたいところです
>>518 ???
バカなの?
お前が500なのもお前に俺がレスしたのも誰でも分かるわ。
>>502 のレスにおいて"
>>501 "を付けるから俺に回答を求めてると判断されても仕方ないだろが。
>>525 笑えるな、答えられないやつに答えを求めないって(笑)
まあ、プロさんのようだから答えられないの恥ずかしいのか(笑) あげとくは
>>527 煽ってもお前のレベルが低いのは変わらんぞw
相手のレベルを推しはかれないのは相手よりスキルがかなり低いからなんだが。
まだやってんの 最近多い無関係の人が巻き込まれるような事件起こしそう
>>528 あら、単に引きこもりのカスでろくなの作れんて思ってるよ(笑)
>>530 そりゃスキルの無い奴は人を評価出来ないからなw
データベースでエクセルのフィールド(3)を下に読み取っていって、入ってる型が文字列以外の物が入っているかチェックしたいんですけど何かないですか?
>>532 vartypeがvbStringかどうか
typenameが"String"かどうか
など
>>532 わざとやってみてどうなるか確認してみよう
先頭何レコードで判断するんだっけ?
>>532 早速やってみたけど、逆のパターンである
「先頭に数値が入っていて途中から文字列に変化した」場合は判定できた。
具体的には数値部分だけ読み込んで文字列の部分はNULLになった。
「先頭に文字列が入っていて途中から数値に変化した」場合は全部文字列扱いになったので厳密には判定不能。
初心者なので意味がわかりづらかったらすみません まず、やりたいことは 1.ユーザーにB2~E2あたりに文字を入力してもらう 2.それを5行前後繰り返す 3.この後にボタンを押してもらう (以降マクロ処理) 4.入力して貰った行の各左セル(A列)に営業日(月初)を入力する 入力内容を下の行にコピペして、A列日付だけ翌営業日にする それを月末日まで繰り返す これを実現したい場合、営業日付をどう表示し、どう繰り返せばよいか検討がつきません アドバイス頂けませんでしょうか 日付に関してyyyymmのみユーザーに手入力して貰う予定で、それを利用できるかなと思っています
>>536 Sub foo()
コピー元_行数 = Cells(Rows.Count, 2).End(xlUp).Row - 1
Range(Cells(2, 2), Cells(コピー元_行数 + 1, 5)).Copy
処理年 = InputBox("処理する年を四桁で入力してください", "", Format(Date, "yyyy"))
処理月 = InputBox("処理する月を1桁で入力してください", "", Format(Date, "m"))
'ここに上記が数値以外なら終了させる分岐をかます。めんどいのでしてない
For i = 1 To Day(DateSerial(処理年, 処理月 + 1, 0))
Cells(コピー元_行数 * (i - 1) + 2, 2).PasteSpecial
Range(Cells(コピー元_行数 * (i - 1) + 2, 1), Cells(コピー元_行数 * i + 1, 1)).Value = _
DateSerial(処理年, 処理月, i)
Next
End Sub
>>535 上にあるようにvartypeだとだめかね?
教えてください。 ActiveCell.EntireRow.Copy Destination これで「任意のセル選択中で1行コピー」になりますが、 改造して「任意の複数セル選択中の複数行をコピー」に変えたいんですがわかりますか?
仮面ライダー本郷猛は改造人間である。彼を改造したショッカーは世界制覇を企む悪の秘密結社である。仮面ライダーは人間の自由のためにショッカーと戦うのだ!
>>539 Selection で自己解決したんですが、
ThisWorkbook.Worksheets("sheetA").Activate
Selection.EntireRow.Copy Destination:=ThisWorkbook.Worksheets("SheetB").Range("A57:A62")
ThisWorkbook.Worksheets("SheetB").Activate
Range("A3:I4").Select
End Sub
で所定の6行のスペースにペーストするんですが、選択セルが5以下だと重複して貼り付けられます。
重複しない方法を教えてください。
コピー先のセルのアドレスをシンプルに"A57"に変えるだけでいいと思う
>>538 それだと対象のブックを開かなきゃダメじゃん
【速報】金券五百円分とすかいらーく優侍券をすぐもらえる ① スマホでたいむばんくを入手 ② 会員登録を済ませる ③ マイページへ移動する ④ 招待コード→招待コードを入力する [Rirz Tu](スペース抜き) 今なら更に4日18時までの登録で2倍の600円の紹介金を入手 クオカードとすかいらーく優待券を両方ゲットできます。 数分の作業でできますのでご利用下さい。 直前に開いたファイルのキャッシュ的なものを参照して情報を取得することってできますか? 例えば直前に開いて印刷して閉じて消去したファイルのA1セルに記載の値を別ファイルのB1セルに転記する、みたいな
>>548 必ずバックアップしてから開くようにバッチファイル作ればいいだけじゃね
>>549 知らないならわざわざ書き込まなくていいよw
印刷時には転記先のファイルが必ず開いてる状態なの? それならWorkbook_BeforeCloseで閉じる直前に転記は?
これはそんなの知るかという気持ちもよく分かる。 工夫次第でどうとでもなるけど、そういう問題かどうかをはっきりさせるべき。 そういう仕組みを作ることなくできるかと言われれば、できないと答えるだろう。 工夫でそういう仕組みを作りたいというなら、それについて自分の考えを述べるべきだ。 VBAの問題じゃなくて考え方を考える問題なんだから単純なスキルの問題ではない。
事前に、ファイルを閉じる前や消す前に準備しておけばどうともできる 他人が使ったパソコンをこっそりのぞき見したいなら、それはかなり難しい 不可能じゃないけど、現時点では動機が不明で教えるべきじゃないと思われるので書かない
>>556 > 消去したファイルのA1セルに記載の値
なので履歴じゃダメだろうな
マジでなんのためにそんなことをしたいのがさっぱりわからん…
>>537 遅くなりましたがありがとうございました!とても参考になりました
おかげさまでメイン処理はひとまず形になりました
ツール完成させられるよう頑張ります
>>558 こんなこともわからんような馬鹿が作ったものを使わされるとか
>>559 人間性に問題のある君と同じ職場よりは大分マシだろう
いやいや ここは御大層に「ツール」とか書かれて吹き出す場面だろ
ここは、あれだ。プークスクス、マジ受けるんですけど!というやつだ。
Use after free攻撃のやり方を聞かれてるのと一緒だよなこれ
まあな、Excelの標準機能で出来ることも知らん奴が、作りたいものを考えて質問するんだよな だけど、ちょっと知ったかぶってどんなプログラムを作りたいとか書くけど 普通にExcelの機能で出来ることも、質問してるんだよな 動作仕様をかける奴は普通VBAのマクロも作れる 作れないやつの動作仕様ってごみなんだよな、何がしたいかだけ書けよと思う
標準機能が嫌いなんだろう。 あとは、VLOOKUPでも出来るけど、 遅いし面倒くさいからADO+SQLでやるとかさ。
ファイルの保存先の権限がなくて、別のユーザーのアカウントとパスワードで保存できる??
どうやるんだそれ・・。 OS上でOSでも動かすのか?
そういや、Windows 3.1はMS-DOSの上で動いていたっけ…
>>570 それってネットワーク先の話?
共有フォルダでの読み書きとか?
結構難しい。
excelのセルに記載された文字を、 PDFに位置指定して、テキスト挿入できますか?
>>581 できるかどうかを聞いているのではない。
やり方を聞いておるのだ。
>>581 a=cells(1,1).value
b=cells(2,1).value
①abc.pdfをオープン
②3p目の左上を起点に左から100、上から50の位置に、8ptで幅20の黒色で、aの内容のテキスト挿入
if b=1 then
③3p目の左上起点の左から200上から300の位置に、黒色の縦10幅10の円を挿入
else if b=2 then
④上記③の位置違いパターン
endif
この①②③を教えていただきたいです。
PDF直接作るの超めんどいぞ Excelで位置確認ずらしていきながら合わせるって方法取ったほうが良い
>>585 マジかぁ
pdfは書式が既にあって、それをまずエクセル化するところからしなくてはならない
excelのセルから抽出し、wordに入力するのも大変?
>>586 Excel VBAでワードを開く方法がある
https://tonari-it.com/excel-vba-word-application/ wordの細かい所をどこまで触るかによると思う
単純作業なら全然難しくないよ
>>587 ありがとう、ちょっと読み込んでみる
やりたいことは要は、エクセルにずらーっとリストがあって、その内容を、
雇用契約書の穴埋め書式みたいな他のファイル(エクセル、ワード、pdfあり)に展開したい
展開内容はセル内容の挿入と、履歴書の男・女みたいに、○を挿入する形がある
○で囲むのは止めたほうが良い。ずれる 以下のような形に変えれるなら買えたほうが良い。 □男 ?女
>>589 いや、書式はもう決まってんのよ
変えれるものじゃないんだ
□の方が楽だけどなぁ
>>587 参照設定してるのに、CreateObject(“Word.Application”)って何?
>>592 参照設定はあくまで参照先ライブラリの型をインテリセンスや型指定でネイティブに使えるようにするための設定
ワードのアプリケーションのインスタンスを生成しないとエクセルからワードの操作はできない
>>594 そういうことじゃなくて、参照設定でその書き方? っていう。
それやると、レイトバインドとアーリーバインド、どっちになるの?
>>593 最終手段はワードとpdfは画像化してエクセルに貼り付けて、そこでマクロるかな…
>>594 何か変だと思って試したけど、
こうか
Dim w As Word.Application
Set w = New Word.Application
こうじゃない?
Dim w As New Word.Application
>>595 >>597 参照設定したときに参照先ライブラリのクラスについて必ずNewキーワードでインスタンス生成しないといけないという決まりはない
参照設定して変数にワードのアプリケーション型を適用してる時点でアーリーバインドになる
Newキーワードで生成したインスタンスのポインタを変数で受けてもCreateObjectから返ってくるポインタを変数で受けても同じ
というか、参照設定時のインスタンス生成にNew使わないと駄目なんて決まりがあったら、GetObjectで他アプリのインスタンス取得して操作したいときはどうなるのって話になるよな
>>598-599 わざわざ参照設定してるのにCreateObject(…)するアホがいるとは…
CreateObjectも参照設定もimportだから、どっちか一つでいいんじゃないの? 両方やっても問題ないけど意味はないと思う あんまリンク内容見ずに貼ってしまった俺が悪いな、すまん
山椒設定はライブラリバージョン古いPCじゃ即フリーズじゃなかったっけ
配布するなら、参照設定でプログラミングしてテストして、参照設定外して createobject方式にして配布 配布先で参照設定か外れることがまれによくあるので、こうしとくと無難
参照設定はあまり良い挙動をしない。あと挙動が変な時に発見し辛い createobject()書いたほうが良い
>>596 だけどpdfを画像に変換し、エクセルに貼り付けて、テキストボックス挿入がクソ楽だった
ソースファイル(.bas + .cls)配布のときは参照設定はやりづらいからな
>>606 そそ
参照設定外れても、それとは全く関係ない所がエラーになって止まる
枯れたプログラムだったり慣れてくると気づくけど、そうでないと解決に遠回りする
それらも覚えておくべし
>>606 のおっちゃんが、createobject()書いたほうが良い、と書いてるけどなぜ?
参照設定が実はおまかんだから 今のPCで動いてても次の環境や他のPCで動く保証がない ってことでしょ?
>>611 のおっちゃんが、おまかん、と書いてるけどどういう意味?
参照設定までするのにVBAでする必要ある? なんでそこまで意地になってVBAなんぞに拘るの?
>>612 お前の環境(が悪い)
スマホゲームで動作が悪い時に言われる事がある
おまかんとかおれかんとか
>>614 全くこだわってないよ
最初から別言語やツールが良ければそれらで作ってる
Excelで99%出来上がってるのにここから戻るってのがありえないってだけ
>>614 VBAスレだし
>>615 それスマホに限った話じゃないよ
>>616 そうか、スマン
いつから流行りだしたんだろう
VBAに新機能がつかないのはもう諦めた でもIDEはもうちょっと進化させるつもりないん? と思って調べてみたらアドインでなんとかする方法あるんだな 使ってる人いる?
.NET使えるから最新環境で作成できるぞ 一回試した後は一回も使ってないけど やっぱファイルと一体化してるのは超便利だ
グラフのプロットエリアの位置が設定出来ん! ググったら、デバッグプリントするといいよって書いてあったので、 やってみたら、本当に出来た。 何でそんなんでOKなのかワケワカラン。
>>617 DLL HELLならVisualBasicのVBXが元祖だよ
>>618 むしろ開発環境は意図的に使用困難にしていく方向じゃないかな
VBAの実行はできるけどVBEは廃止、どうしても編集したい場合は旧バージョンを使ってね、くらいはそろそろ覚悟しといたほうがいいかも
MSとしてはそうしたいのは透けて見えるけど、ここまで広まったものを軌道修正するのはなかなかねぇ
代わりはMSがこれまでにいくらでも提供してきただろう お前が新しいものから目を背け続けてきただけだ
>>614 のおっちゃんはVBAをバカにしてるけど
じぁあVABを使わないなら何の言語でするつもりなの?
>>628 のおっちゃんはパワーシェルと言ってるけど
便利なエディターとかはあるの?
>>610 ,
>>610 爺お得意のバッドノウハウだから気にしなくていいよ
>>629 PowerShell ISEでいいだろ
ただ
>>628 のおっちゃんはまともに使ったことないと思う
PowerShell + Excel って結構色々ハマりポイントあるし
たかがファイルの内容編集に 広範なシステムアクセスを行うPowerShellをつかわにゃならんのか?
Ruby の方が、バグらないから良い それに、Rubyスクリプト内で、PowerShell コマンド・スクリプトも実行できるし
外部のプログラムと シェル用にガチガチになったExcelフォーマット別々に扱うのも不便そうだ ExcelVBAこそオブジェクト指向の体現であったのか
>>635 のおっちゃんはRubyはなくなるみたいなこと言ってるけど
人気じゃないの?Web関連の仕事もRuby案件が一番人気と聞いたこともあるし。
>>631 のおっちゃんはPowerShell ISEと言ってるけけど
そんなのどこでダウンロードできるの?
仕事で使うPCにはまず入っているExcel VBAのエディタこそダウンロード不要で汎用性あると思うけど
>>636 一時流行ったし最先端の時期もあったけど、rubyを開発した「まつもとゆきひろ」がサボりにサボって他言語に抜かれまくった
今は全く人気がないし性能も悪い
ただ、保守案件が多少残っているので、ruby使っている人は保守案件をこなしながら他言語を覚えている状態
githubユーザーの割合
あくまでgithubのプロジェクト
web開発の主流になっているphpは山程使われている
>>638 テキストエディタと変わらんよ、すっげーしょぼいよ
汎用性ではなく、何も出来ないといったほうが正しい
atomやsublimetext辺り使ってみると分かると思う
>>639 金融系とか外部プログラム不可の業種とかあるんだ
最初から入ってるというのは大きなメリット
>>639 のおっちゃんはニートですね。
会社のPCは2流以下の企業以外はインストール禁止がほとんど。
>>640 そうですか
じゃRubyやめよう
PHP勉強する
もともとRubyは糞言語と思ってた
「まつもとゆきひろ」のおっちゃんは開発者によけいな負担をかけさせやがって
>>640 そのグラフ、みんな下がってるけど今は何が上がってるの?
結局C#とかJava?
>>644 https://www.tiobe.com/tiobe-index// 業務用のjava・C系列、機械学習のpython、webバックエンドのPHP・フロントのjs
この辺が固定。特にjavaは強い
明確に上がっているのはSwiftぐらい。iphoneアプリ開発用と思うけどあんまり知らない
>>415 デコレータパターンあたりでググると
幸せになれるよ
>>641 外部プロクラムなんて金さえかからなきゃ申請して不可になることは少ないよ。
Visual Studioは普通入れられる。
(支店とかは知らんけど。)
>>642 ご愁傷様としか言いようがないね
そもそもVBAが廃止になっら MSのエクセル使う意味ないわ 365の更新やめるだけ
同じ議論ばっかだなあ。 今までの議論でVBAが一番有利なのは既に何度も語り尽くされてる。 Excel上で余計な申請などせずに、何処でも汎用的に1ファイルで扱えるのはVBAのみ。 汎用実行ファイルの作成の代わりにVBAでやるのはダメだけどね。 殆どの議論が土俵を間違えてる。
PowerShell ISEがどこでダウンロード出来るかっていう質問はこのスレを象徴する質問だな
例えばVBAでは無理な処理はC#なんかを使う。 そうすると参照設定が必要になったり、汎用的じゃ無くなったりする。 それは仕方の無いことだ。 けど、上の方で参照設定の議論が出てるけど、上級者で実行時バインディングにする一番大きな理由はコード使用者に参照設定するよう説明を付けなければならない点にあると思う。 ソースコードだけで完結しないのを良しとしないわけだね。 そういう点からするとVBAのコードだけで完結しないのは一歩後退という感じがするわけ。 勿論、処理そのものがVBAでは無理なものは他言語でやるのは当然のことだけどね。
PowerShellは残念ながら殆どメリットになる所が無いと思う。 C#ならVBAではどうにも無理な処理をExcelファイルに統合出来る。 汎用性からは一歩後退するけど1ファイルにはなる。 PowerShellでVBAにはどうにも無理な処理というのがそもそも殆ど思い付かない。 その上、1ファイルに統合出来ない。 正に土俵が違う感じ。
PS好きだけどこれ以上はスレ違いになるのでやめよう
VBA がいいのかそれとも PowerShell や C# がいいのかはそれこそケースバイケース VBA が絶対有利と言い張る ID:xU3mv9gpd みたいな奴がいるから毎回グダグダの議論が繰り返されてるだけ
>>655 ケースバイケースだが有利なのは当然。
土俵を限定した専用言語なのだから。
サクラエディタのマクロはそれ用のjavascriptとライブラリが有利、秀丸には秀マクロが有利なのと同じ。
頑張ればサクラエディタの拡張用にPowerShellで何か書けるかもしれんが、そんなことする奴がいるか?
1ファイルの人を納得させるのは無理なんだから諦めよう 職場のPC環境も今後変わっていくものだしそれを邪魔しないなら後は何でも良い
>>637 本気で訊いてるの?Vista 以後のWindowsに標準で付いてるよ……orz
ケースバイケースって書いてるのにまだ有利なのは当然とか言うアホはどうしようもないな…
100歩譲って有利なケースが多いと言うならまだしも言い切る辺り
>>657 の言うのが正しいんだろう
日本語の分からないアホはどうしようもないな。 有利≠絶対にそうしなければならない。 有利なケースが多いことを有利と言っているのが分からないんじゃ話にならない。
まあ、PowerShellが有利なケースなんて見たことが無いけど。
Excelファイルを作るという場合においてVBAが有利かと言えばそんなことは全く無い。 Excel上で作る場合ぐらいだろう。 VBAが有利になるのはあくまでExcel上から動かすからだ。 土俵を限定しているということはそういうことだ。 そういうことを理解出来ない人が多い。
>>662 >Excelファイルを作るという場合においてVBAが有利かと言えばそんなことは全く無い。
え、じゃあ何で作るのが有利なの??
>>663 その処理を実装する言語でしょう。
Excel上で実行しないなら、例えばPowerShell上で某かの処理を実装し、その中でExcelファイルを作成したいならPowerShellで実装すべきでしょう。
Rubyで某かの処理を実装し、その中でExcelファイルを作成したいならRubyになるでしょう。
VBA以外の大抵の場合、Excelファイルがメインなのでは無く、某かの処理がメインでしょう。
>>665 他言語を主張する人は、自分目線でそういう土俵を考慮しない人が多いという話。
ここはExcelVBAのスレだから最初からExcel上で実行することが前提になってるし、最初からの単体実行ファイルや単体実行スクリプトに比べてExcelが介在しない点について汎用的でないことが前提になっている。
(VBAでExcelファイルとは無関係な汎用処理を実行させることは可能でも、その点で有利を主張する奴はいない)
そういう前提である以上、他言語との比較では他言語はExcel上で実行する立場で有利不利を論じなければならないからVBAが有利なのなんて当たり前でしょ。
そもそもがVBAが有利な土俵なんだから。
VBAの場合、Excel上でファイルを作るのが前提。 他言語でよくやられてるExcel上では無い所でExcelファイルを作るというのはVBAからすると最初からスレチになっている。
>>664 RubyでExcelインスタンス作るとか、処理が例外的すぎるだろう
そんなニッチな場合なら何でやってもいいのは言うまでも無いしそれをわざわざ中心に語る君は相当変だよ
>>668 普通は作るとは言わない
バカが踊り狂ってるのを冷ややかな目で見てるのがよろし。(またはNG行き)
まあでもお前らもExcelに組み込まれてなかったらこんなクソ言語使わないでしょ?
1ファイルならVBAってのは理解出来る 外部参照までするのにVBAってのはなんで?ってなる 余計なのがあるから渡される方も怪しむ
>>660 > 有利なケースが多いことを有利と言っている
お前はまず日本語の勉強からしろよw
>>671 クソとまでは思わないけど最近のモダンな言語に比べたらちょっと面倒だなって思うことが多いわな
>>674 だからケースバイケースだって言ってるでしょ
測定器から読みだしたデータから簡単なレポート作るならVBAがいいケースもある
その際に測定器とのやり取りのためにメーカー提供のDLL参照するとか
>>675 それを言うなら「有利なケース」が既におかしい。
最適なケース、もしくは適したケースが正しいだろ。
お前の
>>659 に合わせたらそうなっただけだよ。
>>669 そうじゃなくて、ここは汎用言語じゃ無いVBAのスレだから比較するならVBAで想定されている利用に限ると言っている。
それ以外で比較しても意味が無い。
だからVBAの土俵に合わせて貰わないとな。
汎用言語としてVBAを使うという話ならVBAが優れているなんて言う奴はいない。
Excel上でExcelファイルを作るならVBAが有利だし、そうじゃ無いなら想定外。
本来、どの言語を使うべきかなんてケースバイケースなんだが、その既にケースバイケースの件に踏み込んでることに気付いていない奴多数。
>>678 > それを言うなら「有利なケース」が既におかしい。
> 最適なケース、もしくは適したケースが正しいだろ。
ますますアホ晒してるぞw
誰も最適なんて言ってないし
>>681 > 本来、どの言語を使うべきかなんてケースバイケースなんだが、その既にケースバイケースの件に踏み込んでることに気付いていない奴多数。
いや、必死になってる1人だけじゃね?w
「Excelファイルを作る」って表現が気持ち悪すぎて無料
まあ大抵の問題はVBAというよりもセルやブックを直に参照してるところなんだけどな。
>>683 まだ分かってないから笑えるw
VBAの時点で「ケース」なのに必死に否定しようとしてるアホがいる。
>>682 お前のレベルに合わせるの疲れるわw
「有利なケースが多いことを有利」の2つの有利は厳密に言えば意味が違う。
したがってこれ自体は間違いとは言い切れない。
しかし、お前の言うようにこれが間違いだとすれば
>>678 がその結論になる。
つまり
>>675 が間違っているか、
>>678 が正しいかのどちらかだ。
たぶんこれ理解出来ないんだろうな。
ホント疲れるw
ここでVBAを否定しようと必死になってる奴って、アセンブラでドライバー作ってる奴にもモダンじゃないとか言ってそう。
VBAに浸ってると 脳回線が行き当たりばったりでぐちゃぐちゃになるようだな…
>>651 VBAで無理な処理ってどういうの?
リッジレーサーを移植するとか?
怒涛の3連投ww 今どきはドライバーもCとかで作るのが普通と言うことも知らんのだろうなw
PHP7, Python3 は、互換性が低いから、全く同じものを作り直しているだけだろ。
Ruby は互換性が高いから、作り直さなくても動くから、プロジェクトの数が少ない
雑誌・web サイトの記事もそう。
PHP7, Python3 の記事は、書き直しただけで、内容は以前と同じ
テキスト処理なら、圧倒的にRuby が有利!
>>637 PowerShell, PowerShell ISE の両方は、Windows に、元から入っている
>>639 銀行でも、有料のExcel から、無料のLibre Office へ移行した所もある。
有料ソフトはインストール時に、管理部門に申請書を書いたり、代金支払いなどの手続きが面倒だから
非生産的というかなんかエライ古い話ししてるな~って印象しかないで
>>692 お前のようにスキルの無い奴では無いのでそんなあたり前の話を知らない筈が無いだろw
それに全く反論に成ってない。
世の中けっこう非生産的だよ 著作権とかセキュリティとかリバエン禁止とかいろんな理由で他人の作ったコードは使えないから、まったく同じ結果の出る関数を1から書き直せって仕事がけっこうある まあ、車輪の再発明を強いられるのは、どんな業界でもあるんだろうけどさ
>>690 VBAでも高速化するテクニックは沢山あって、それをきちんと考えて組む上級者は遅いと感じることはあまり無いと思う。
けれども、どんなにテクニックを駆使しても限界はあって、本質的に遅い部分は他言語を使った方が良い場合もある。
Excel上の部品で、VBAでは作成不可能なものもある。
シートやフォームに貼り付けるコントロールの自作はVBAでは無理なのでは
インプリンタだし並列処理が出来ないから最近の大容量データ処理にそもそも向かない
セルA1,B1,C1,D1に4,3,2,1と入っていて500行目まで同じようにランダムに数字が入ってる状態で、1行ずつ500行目まで全て昇順にソートするプログラムを教えてください。 マクロの記録で1行分をコピペして作ったんですがセル位置直すのに心折れてしまいました。 for nextで繰り返し処理できるようなプログラムでできませんでしょうか。よろしくお願いします。
>>700 そういうものより独自のPaneを追加したりの例が過去スレで挙げられてた。
こういうのは(コントロールもそうだけど)C#とかで作るのが楽でしょう。
>>702 上級者がこういう質問に回答したいと思わないのは、あなたは何でFor Nextで出来ないのか、あなたはFor Nextで書こうとした時にどこで詰まっているのか書いて無いからなのね。
想像するに、1行分のマクロ記録の部分を例えばk行目についてkを使って表現出来ないからだと思うんだけど、違うかな?
>>702 標準的なWindows環境でファイルを使う前提ならば、.NETのArrayListクラスのSortメソッドを使って各行の値を昇順ソートしてから代入してしまう手順にするのが楽かな
制御フローは{各行の処理{各列の処理}}というオーソドックスな二重ループで事足りると思う
ArrayListはCreateObject("System.Collections.ArrayList")でインスタンス生成できる
詳細はググってね
>>700 そう言えば、コントロールの自作は無理でもクラスにすることはあるね。
でもクラス単体で完結させるのは難しい。
WndProcは標準モジュールに置くしか無いから。
でも変数にマシン語を入れて無理矢理クラスにWndProc置いてた人がいたな。
こういうレベルまで来てるなら明らかに自分よりレベルが上だね。
>>702 Sub Macro1() For r = 1 To 500 ' 1行目から500行目までソート Set Ra = Range("A" & r & ":D" & r) ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Ra _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").Sort .SetRange Ra .Header = xlGuess .MatchCase = False .Orientation = xlLeftToRight .Apply End With Next End Sub ユーザーフォーム上に動的に生成したコントロールでenterイベントとれないんだけど仕様?
>>701 でかいデータ処理自体はExcelにやらすべきでしょ
ネイティブだしマルチスレッドでやってくれるし
>>696 > お前のようにスキルの無い奴では無い
他人が言うならまだしも自分で言うとか恥ずかしくないのかな?
まあまともな羞恥心あったらアホレスを延々しないかw
>>712 お前は
>>706 が理解出来るか?
長いこと見てるがここで他で見たような高度な話に出会ったことがないわ。
>>714 そりゃvbaで高度な事をする理由がないから当たり前だろう
VBAは事務や営業がルーチンワークをちゃちゃっと楽するための言語だよ
上の方でリッジレーサーとか書いてたけど、そういう高度(?)なこともできなくはないで 昔、excelのフォーム上にdirectxで3Dオブジェクトとか動かしてたから ラッパー作ってやれば相当いろんなことできる (参照設定は含まないとか狭い了見のやつは知らん)
Win32API呼べるんだからそら何でもできる事はできるでしょ
>>716 理由のある場合もあるし、実際やってる所もある。
>>717 今はDirectXがほぼ扱えなくなってるから難しいけどね。
>>715 これが分かり易い例かな(VBだけど同じようなやり方はVBAでもできる)。
http://nienie.com/ ~masapico/doc_FuncPtr.html
>>694 × rubyは互換性が高い
○ rubyは進化が高い
>>640 でも言ってる通り、rubyは進化をサボりまくって完全に置いていかれた言語
端的に言うとゴミだ
プログラム板にはところ構わずrubyネタを書き込むキチガイが常駐してます。 ご注意を。
会社で使ってるpcをwin10アップグレードwin7機をwin10プリインストール64bit機にしてもらったらDAO3.6の参照設定がされてる会社共有マクロファイルが動かなくなっててワロタ 参照設定をAccsess database engineに切り替えてあげて動くようにしてあげたら賞賛されてワロタ 古い技術・pc使ってんなぁ…と思った
>>710 クラスモジュールで
Private WithEvents Obj As MSForms.TextBox
と宣言しておいて
form.Controls.Add("Forms.TextBox.1",str)
で生成してObjにSet
Private Sub Obj_Enter()でObjへのフォーカス移動を取りたいが取れない
labelのonClickとかは同じ方法でできてるんですが…
702です。色々とありがとうございます。704さんの仰る通りでございます。707さんのではできませんでしたが、大いに参考にさせていただき無事できました。助かりました!
使用人数の多い人気の言語なんて価値が低い 使える奴が溢れてるから君の代わりは沢山いるから明日から来なくて良いよ
>>727 >使用人数の多い人気の言語なんて価値が低い
人件費と言語の価値をごっちゃにしすぎ
使用人数の多い人気の言語
>だからこそ価値がある
だよ
>>714 どこが高度なのかさっぱり
変数にコード入れるとかむしろ昔の方がやってた(って言うかやらざるを得なかった)
Peek, Pokeとかあったしな
今のOSはチェックが厳しくなったからそのあたりは面倒になってるし低能がマウント取りたいだけにしか役立たんよw
>>725 Enterイベントに入りすらしないということ?
>>725 そいつはマジメにやるとすればとっても高度な奴だね。
OLE/COM Viewer使って情報取得して、ゴニョゴニョ...。
工夫で乗りきる方法も有るようだけど。
>>729 Peek、Poke使ってた時代はそれが簡単に出来た。
今は面倒になってるから高度なんだろ。
>>729 使わないとプログラムの構成が汚くなる。
で、これを知らなかった頃にクラスにWndProc置けないの何とかならんかと思ったことがある。
同じように考える人がいたからこれが実践されたわけ。
つまり、マウント取りたいだけにしか役立た無いなんて想像するようなアホなレベルの人では理解するのは力不足だよ。
>>719 GetProcAddress って何だっけ?
自分は AddressOf は大量に使ってるけどこいつは知らないな
マウスを砂時計にしたいがためにWin32呼んでるアホマクロならこの間見つけたな
>>736 関数名を文字列で渡すのか...
関わりたくないな
Excelで出来ることを屁理屈で言ったら、究極は何だろうな。 VBSでも、IE画面にタグを書き込めば、GUIを作れる!みたいなの。
言葉尻を捉えて揚げ足取り合ってて楽しんでるようにしか見えない
そうだな。文字列データあればなんでもできるくらい愚か。
VBAで必要にならない処理なら単なるビックリ処理で終わりだろうな。 それじゃ意味が無い。
シートやブックの指定を毎回名前で指定してるコードをよく見るけど、処理遅くなるし保守性悪いしでいいことないのになんでやってるんだろ
>>731 あらかじめ設置しておいたテキストボックスをwithEventsのObjにSetすれば同じ方法でEnterイベントとれるんですが
>>732 やはり普通のやり方ではとれないのが仕様なのか
>>733 高度なのと面倒なのの区別もつかないのかよw
>>734 今それやってるやついるか?
そもそもVBAの中途半端なクラス機能なんてたいして使えないし
あ~~電子タバコ意味ないんじゃ~~ 金返せ~~~~~
>>747 高度だが。
Windowsがどのようにして動いてるかなど、Peek、Pokeの時代は知る必要さえ無かった。
やってる奴はいる。
自分のスキルの問題を言語のせいにする奴にとっては中途半端なんだろうな。
まあせいぜいコンストラクタに引数も持てない、継承もできないクラスでOOPごっこでもしてればいいんじゃね?w
>>752 結局こういうことを言う人はC#だろうがPythonだろうが自分のスキルが足らないとこの言語はダメだと言って自分のスキルを上げるとか工夫するとはならないんだろうな。
文句を垂れるだけで自分で解決しようともしない。
どうやって解決するんだよw 解決策の一つでも出して見てから言えよ ちなみにC#とPythonもコンストラクタに引数は持てるし継承もサポートしてる
>>752 コンストラクタに引数持てないことを問題視する意味がわからん
どんな言語も万能じゃない
他のやり方で解決できるなら、そうするんだよ
アセンブラしか使えないなら、その仕様範囲でプログラミングするんだよ
大きな口叩くならお前が万能言語作ってみろや
> 大きな口叩くならお前が万能言語作ってみろや クスクス
>>755 > コンストラクタに引数持てないことを問題視する意味がわからん
えっ、まじで言ってるの?
クラスを持つ他の言語はたいていコンストラクタに引数持てるよね?
その意味もわからないの?
> 他のやり方で解決できるなら、そうするんだよ
だからVBAでクラスなんて使いどころが限られるって話なんだが…
> 大きな口叩くならお前が万能言語作ってみろや
極論で反論したつもりになる低能乙w
コンストラクタに引数持て無いことの意味が分からないってアンタw プログラム開発の経験ないって自分から言ってるようなもんじゃないか
そんな局所的なこと言ってないってのが例えでわからんよねバカ達は 井の中で叫んでるやつは議論する価値なし
PEEKとか懐かしいな ポケコンかな ずいぶん長い間、携帯雑誌に書いてる機械語をどうやって入力するのか分からなかったな ベーマガはポケコン少なかったしな
でも今のVBAは詳しく説明してくれて良い時代だよな 基本書と後はネット渡歩けばそこそこは作れるな 昔はベーシックは簡単だったがやれることが限られすぎてて 結局機械語に行かないと話にならなかったが、買った本が悪かったのか全く理解できなかった 代入ばかり書かれててもどうやったらゲームができるのか分からないよってよ
>>690 そもそもだ
お前の頭じゃどんな言語を持ってしても
リッジレーサーは作れんだろう
俺にも作れない
>>755 彼は日本語が読み取れないようだね。
どんな言語でもダメな部分はある。
その度に文句垂れて何もしない負け犬人生が目に浮かぶ。
>>765 >>754 具体的に語れないなら黙ってなよw
>>748 動的リンクは LoadLibrary くらいまでなら許容できるけど関数単位は御免だよ
継承はいらないしインタフェースもいらない
>>767 お前はLoadLibraryだけして何をするつもりなんだよw
>>768 Dll ファイルに対してLoadLibrary したら、そこに含まれる関数はすべて普通に呼び出せるだろうが
>>770 ?
個々の関数名を文字列で渡す必要があるかないか、って話だぞ
>>719 で出た GetProcAddress の話が続いている
>>771 だからLoadLibraryで得たハンドルをどう使う気なんだよ…
>>772 ハンドルの使い方なんて関係ないだろ?
実行時に関数単位で文字列による指定をしなくて済むって言ってるだけだよ
LoadLibrary()の下に関数を呼び出すコードを書いてみよ ということでは
Declare PtrSafe Function func Lib なんたら~ だろ
GetProcAddress がwindowsAPIならLoadLibrary もwindows API API に文字列を渡して何かにattach するときに、関数単位なのかファイル単位なのかってだけの話だよ。 使う関数が多数あることを想定している。
>>775 それ使うならLoadLibrary関係ないだろw
言ってることがチグハグすぎる
>>777 パスの解決に使うじゃないか
全部のDeclare 文にパス入れてんのか?
>>778 今時 AddDllDirectory と SetDefaultDllDirectories でやるだろ…
>>766 解決するつもりは無いのですよw
日本語分かります?
>>753 は解決できるなんて話してないんですよ。
VBAのコンストラクタ問題を否定していない。
>>753 はあなたのような人はC#で解決出来ない問題が出てくるとC#をこき下ろすだろうと言ってるにすぎない。
それとも「解決しようともしない」に反応してるのかな?
そういう話なら簡単です。
動作で問題になるよりコンストラクタ問題の解決は小さなことだからですよ。
あなたはコンストラクタ問題が解決出来ないからVBAでは実現出来ないと言って手を引いた。
しかし、私にとってはコンストラクタ問題が解決出来なくてもVBAで実現出来ることの方が上です。
動作の面でVBAの方が上となればの話ですが。
そしてVBAでの開発は限定された土俵であるがゆえに動作の面で上と成りやすい。
したがって総合的に有利となるわけです。
このスレ、質問に答えるというよりよくわからないレスバトルを楽しむ場所になってるよね
>>780 誰もVBAを使わないなんて言ってない
VBAのクラスは使いどころが限られる言ってるんだが…
> 日本語が読み取れないようだね。
自己紹介だったのかw
>>779 まあそれはあれだ
Windows 7 ェ...
>>782 ???
「どうやって解決するんだよw」などと発言してるのに?
論理的思考も出来ないのかね?
クラスの話はとても分かりやすい。
>>747 を読めばVBAのクラスの欠点を少しでも減らそうとせずに放棄し、その上その努力をした者に対してマウントを取ろうとする愚か者の姿がよく見える。
クラスに問題があることよりも動作に問題の有ることの方が問題なのは当然だと思うんだがね。
1ファイル問題はその一部なんだが。
>>784 > 「どうやって解決するんだよw」などと発言してるのに?
そりゃ
>>753 が
> 文句を垂れるだけで自分で解決しようともしない。
なんて言ってるんだから当然解決策ぐらい持ってるだろうからな
まさか解決策も持たずに吹いてるだけじゃないでしょ?
> 論理的思考も出来ないのかね?
お前がなw
>>785 おまえには不要かもな
ただ他の言語ではたいていサポートしてるから一般的には需要があることぐらいはわかるよね?
VBAのクラス(モジュール)の残念な点 ・プロジェクト外から New できない ・だからcreate~ 関数を作るしかないけど当該クラスモジュールに置けない ・その他関連するちょっとしたヘルパー関数とかも中に置けない ・コンストラクタに引数がない ・End 時には Class_terminate が呼ばれない ・プロパティウィンドウに出ない隠し属性がある ・メソッドの AddressOf が取れない
>>786 ハァ...
日本語勉強してくれ。
出来ることと出来ないことがあるのはどんな言語でも当然のことだろう。
与えられた範囲の中で少しでも改善できる余地が有るのに己のスキルの無さから放棄したお前のことを言ってる。
改善策があるかないかの話などしていない。
そして、お前の主張は動作に問題があることに比べれば全て些末な問題だ。
クラスについてもピントが外れてる。
コンストラクタの引数問題や継承問題よりもカプセル化が不完全な問題の方が大きな問題だ。
にもかかわらず、
>>747 の発言をして何とも思わないのは滑稽だ。
>>788 >プロパティウィンドウに出ない隠し属性がある
他は古い言語だし仕様として諦めも付くが、
これはマジでキツイ、というか意味が分からない
ほんと何でなんこれ
>>790 改善策も持たずに
> 文句を垂れるだけで自分で解決しようともしない。
なんて言ってたのか?
論理的思考以前に引っ込みつかなくなったアホにしか見えんw
>>791 クラスを利用しなくなる、という点で深刻
>>793 出来ないことを罵り、出来ることをしない無能を批判した文章を日本語として理解出来なかったという更なる無能をよく理解出来て良かったなw
>>792 非表示プロパティのことだよな。
確かに何でこんなことになってんの?ってのはある。
でも、非表示プロパティをプロパティウィンドウで設定したいと思ったことは無いなあ。
>>793 引っこみw
笑えるわw
なぜ
>>765 の発言になったのかを考えれば最初から改善策の話じゃ無いの明白なんだが。
>>753 に対しての
>>754 が頓珍漢だから日本語の理解の話になってる。
頓珍漢の意味は分かるか?
噛み合って無いことを指摘してる話だぞ。
改善策の話なら噛み合ってることになるから
>>765 の発言にならない。
今のがシフトケーブルで良かったな、ブレーキケーブルだったらお前はもう死んでるぞ
アホが必死になってるみたいだが 改善策も持たずに > 文句を垂れるだけで自分で解決しようともしない。 なんて言ってた事実は消えない
>>802 何度書いても、日本語が理解出来ないことが露呈するだけだw
こういう自分の無能を気付いてないのを装い続けてうやむやに誤魔化そうとするのって少し前に見た気がするなw
>>806 日本語の勉強しろw
日本人じゃなくてもコミュニケーション取れねーんじゃ議論にならないw
>>791 動作に問題あるって何だよw
そりゃ論外じゃんかw
事実を書かれてあたふたしすぎ 日本語の勉強が必要なのはお前だろ そもそもVBAを使わないなんて誰も言ってないのにねぇw
>>809 なんの動作にどんな問題があるのかも書いてないからなぁ
本人にしかわからん
まあ本人もわけわからなくなってるのかも知れんがw
thiscallな関数を AddressOf で直接取るのは無理か
>>809 >>811 実際は全く動かないなどという論外な話じゃない。
他言語派は自分達のデメリットについていつも無視するか過小評価するから意地悪く極端に言ってるだけ。
開発者にとってのコストより使用者にとってのコストの方が大きいという話だ。
1ファイル問題はまさにそれ。
何度も言ってるけど覆せないからいつも他言語派は過小評価に話をもって行こうとする。
>>810 事実はお前が日本語を理解出来ないということを証明し続けてる事だがw
そんで、認めたくなくてうやむやにしようとしてることだw
ごめん1ファイル問題って何だっけ? その話題(?)は関わってなかったからわからんちん
>>810 直接、VBAを使わないんて言ってないのはその通りだし、最初から分かってたことだが、その論陣で進むと自分の首を絞めることになるぞ。
お前がそういうことを言い出すかもしれないと想定済みだ。
もっとも俺の想定にも穴がある可能性は排除出来ないけどな。
何のことか分からんだろうから言っとくと、お前の主張の結論はVBAを使わないと言ってるか、お前が底辺で仕事してて何も現状を変えられないレベルかのどちらかにちっちまうんじゃないかという話だ。
なんだかわからんがお前ら熱いな そのエナジーをより良いプログラム作成に注ごうじゃないか
>>815 VBAとの比較において、他言語の優位性を語るのであればVBAが使用される状況においても他言語の方が優位であるという論陣を張る必要がある。
しかしながら他言語ではExcelのファイル単体では動作させられないという問題。
C#やVB.netはこれを回避できる場合があるが、この場合はまた別の問題がある。
>>818 単体じゃなくたって「一度インストールすればずっと使える」というモノならこだわる必要ないよね?
>>817 いつものちょっとおかしい子が喚いてるだけ
単にVBAのクラスは中途半端で使いどころが少ないって言われてるだけなのになぜかVBA自体をバカにされたように受け取って必死に頓珍漢なレスしまくってるw
>>821 ケースバイケースだろうね
一部の企業だとインストールの手続きが面倒とかあるし配布して使わせる場合で人数多いとインストール手順書とかをちゃんと整備しないと質問攻めに合うとかの可能性もあったりするしね
相変わらず話し相手のいないさみしいプログラマの無駄話が続いていますが、 質問者の皆さんはこんなの無視してもらって構いませんので遠慮無くどうぞ
いまだに XP ですだとか Excel 2007 以下ですだとかと同じように、何もインストールできませんなんて条件は切り捨てればいいんじゃない? つまり「そんな環境のことは知らん」と。 冷酷に見えるかも知れないけど、それが正しいとマジで思う。
>>825 突然どうしたんだ?
>何もインストールできません
これは金融系なら普通
>>826 金融で何もインストールできないなんて嘘だよ
そんな訳ない
言うのは自由かも知んないけど、金融業界外の人や学生が 「そうか金融行くと何もインストールできないんだな」 なんて誤解するとちょっと害がある。
何もインストールできないなんてことはないけど、稟議にはんこがいっぱい必要とかはごく普通にある > 一部の企業だとインストールの手続きが面倒とか って書いてあるでしょ あとそういう条件を切捨てるかどうかはお前が決める話じゃないから勝手に切捨ててればいいと思うよ
>>827 嘘ではないよ。会社や部署によるけどね
俺が知っているのはみずほ証券、東京三菱UFJ、あと三井が大体同じ感じ
総務はほぼ100%NG(部長以上は自由)。
営業は大半がNG。ただ営業上必要なツールは許可がバンバン降りるってのは聞いたな
基本はシステムに発注をして、全店共通のシステムに組み込むって構造になっている
だからフリーソフトを落としたり、vbaでどうこうする必要自体がない
本部が業務自体を管理して、重複する業務を発生させないようにしているんだ
システム本部がどうなっているかまでは知らない
>「そうか金融行くと何もインストールできないんだな」
大体こう思っておいたほうが良い。
ある程度PC使える人はかなり不便に感じる
セキュリティ面は厳しいけど、それに対する方法が確立されている
手続が要らないことをまるでメリットの様に語るけどさ 業務に組込むならどちらにせよ職場なり部署での検討が必要だろ まさかVBAをシャドーITの温床にしてる訳じゃないよね?
>>830 「俺が知っているのは・・」ってことはあなた自身はそこじゃないけど他の金融機関勤務ってことかな?
大手金融機関なら社内データベースもそれなりにあって個々人の関連業務の範囲でアクセスできる。
また潜在的には優秀な層が集まっててITを力に出来るわけだ。
実はプログラミング環境は最初からそれなりにインストールされてましたってオチじゃない?
>>831 >業務に組込むならどちらにせよ職場なり部署での検討が必要だろ
その辺は年中やってるからシステムの実装までが早い。適材適所で分担されている
vbaを使うのは、慶弔関係のExcelファイルを各課に回し、集計するような場合
これがシステムに入らない
半分私事+頻度低いから仕方ないんだけど、どうにかならんかね~
>>832 この中のどれかに勤めている+同業他社に聞いた話
思った以上に似た構造で、どうせなら同じシステム使えばいいのにって話ししたな
>潜在的には優秀な層が集まっててITを力に出来るわけだ
よーわからんけどみんな自社システムしか使えないよ。基本は入力と確認だけしかしない
>実はプログラミング環境は最初からそれなりにインストールされてましたってオチじゃない?
なんでそんなプログラミングが出来る事にしたいんだよw
必要ないから調べてもないけど、変な物作らせないために入ってないはずだ
>>833 「みんな」っていうとややこしくなるからやめようぜ。
俺もそこまでは言ってないし。
何割かの人は英会話がそれなりに出来る
何割かの人は会計の知識がある
何割かは法学部出てる
何割かの人は大学でCSやってたしプログラミングを仕事に役立てられる
単にそれだけのことだよ
また誤解を生むような表現してしまった CSやってたっていうのは専攻してたという意味じゃなくて教養レベルの事ね
>>828 最大手重工メーカーのうちの一つも駄目だったわ
何でもインストールokの会社なんてあるの?
セキュリティ的に普通に無理じゃね?
中小も含めて
>>836 「なんでも」とか「みんな」っていうと(略
「何もインストールできない」と「何でもインストールできる」の間にはギャップがある。
具体的にはVisual Studio無料版とかMicrosoft製品を禁止する合理的理由なんてないじゃん。
生産性とか競争力気にするなら。
>>837 そりゃ社内手続きすりゃ入れれるよ
勝手にインストールは何一つ無理じゃね
>>838 勝手にインストールの主張は誰もしてないよ
少なくとも
>>825 以降はね
>>839 でもxpとかoffice2007は駄目だろうな
>>836 中小だとそう言うのに無頓着な会社もあるよ
きちんと規則にしてないところも多いし
いまだにフリーソフトの使用は禁止という大企業はある。おそらくサポートの有無の話とごちゃごちゃになってる。
>>841 無頓着じゃないところも少なくないよ
中小っても範囲広いからね
あと規則があるけど取締が緩くて、従業員の意識も低く、勝手にやっちゃってるところも多い
>>843 誰も無頓着じゃないところがないとは言ってない
> 何でもインストールokの会社なんてあるの?
って言うからそういう会社もあるって言うだけの話
・なんでも勝手にインストール可の会社 ・申請しても見境なくインストール不可の会社 これらがダメなのは論を待たない。 ただ「インストール」の具体的な意味がちょっ曖昧かな
Excel2019 alt+F11でVBEが開かなくなった時に見るべき場所はどこでしょうか?
・Alt+F11を押した時の挙動(エラーやメッセージが出るのか、または画面が一瞬出てすぐ消えるといった動きを見せるのか、その他) ・イベントビューア(エラー等が記録されていないか) ・「開発」→「Visual Basic」でもVBEが起動しないのか ・その他のキー操作はどうか(そもそもAltやF11キーがちゃんと反応しているのか)
追加 ・他のアプリケーションでAlt+F11の操作が割り当てられていないか
>>846 タスクマネージャーで本当に存在していないか
>>821 Excelブックは単体だよ。
VBAはexeファイル作成する言語じゃないExcelブック前提じゃないとVBAとの比較に成らなくなる。
逆にさあ、C言語スレでVBA派がC言語をゴミと言ったらどう思う?
バカにしてるとか悪口の視点ではなく。
VBAはExcel無いと動かね―じゃね―かと笑うだろう。
俺だったら間違いなく笑う。
同じことがここで起きてるだけだよ。
>>845 申請しても見境なくダメに近い所はある。
というかけっこうある。
元々入ってるの以外は全部ダメとか。
特に、これもVBAの特殊性だけど、事務寄りだからExcel以外必要無いとされる。
>>837 合理的理由大あり。
何でそんなもの必要なの?
バカじゃないの?
Excelの仕事だよな。
Excelあれば事足りるだろw
と言われるだろうなと自分中心の思想しか持てない人とは違う俺なら想像するね。
そして、そこまで酷くなくても実際に言われるだろうな。
>>847 >・Alt+F11を押した時の挙動(エラーやメッセージが出るのか、または画面が一瞬出てすぐ消えるといった動きを見せるのか、その他)
何も変化なし
ショートカットキーだけが効いていないか、何かで上書きされて無効にされている感じ
>・イベントビューア(エラー等が記録されていないか)
あまり見方が分からないけど、多分何も怒ってないと思う
・「開発」→「Visual Basic」でもVBEが起動しないのか
「開発」→「Visual Basic」 起動する
「開発」→「マクロ」 起動する
マクロの記録も問題がない
ショートカットキーだけが効かない
・その他のキー操作はどうか(そもそもAltやF11キーがちゃんと反応しているのか)
ハードウェア的には問題がない
>849
していない
分析ツールをいれてから発症し始めました
検索しても前例が無くて困っています
>>850 > 逆にさあ、C言語スレでVBA派がC言語をゴミと言ったらどう思う?
また寝言言ってるな
としか思わんw
win10 + offce365 でIE操作がもれなくフリーズする(3台中3台) 同じ症状出てないでか? win10 + offce2007~2016では問題なし win7 + offce2007~2016では問題なし どうすりゃいいんだ
>>853 > 検索しても前例が無くて困っています
検索してないだろ…
alt f11
まで入れたら
alt f11 起動しない
ってサジェストされて
https://answers.microsoft.com/ja-jp/msoffice/forum/all/altf11 でvisual-basic/ed288f9d-d513-4bfb-9b6a-b03f1b885ea0
とか出るだろ
まずはセーフモードで試せよ
>>856 何もしていないです
>>857 調べ方悪かったです、申し訳ない
「vba ショートカットキー 起動」辺りで検索していました
直接altf11入れればよかったとは
色々試してみます
>>850 >逆にさあ、C言語スレでVBA派がC言語をゴミと言ったらどう思う?
レベルが低すぎて相手にされません
難しい言語使ってるほうがエライみたいな発想はどこから来たんだ? だったらアセンブラでも使ってろって思うけど。
アセンブラって難しいのかね? 流行りの関数言語とかの方がずっと難しいと思うけど
>>852 > Excelの仕事だよな
「Excelの仕事です」って募集されたならともかく、なんでそんなものが必要なのかと聞かれたら
「生産性を上げて競争に勝つためです」と答えれば済むだろ。
公務員だったら知らんけど。
>>859 少し哲学的になるけど「なぜプログラムを書くのか」
本質的な答えは「効率化」
効率化を行うために、我々はプログラムを書いている
機械語で書くことが出来れば最高の効率化を達成できる。現実的にはアセンブラになるけど
アセンブラをわかった上で、リソース的に問題が無い範囲で、Cやvbaで書くのはなにも問題はない。結果が同じならそれで良い
プログラマとしては、低級言語を使える分vbaよりもアセンブラの方がエライのは間違いない
逆に言うと、アセンブラをロクに使ってない人よりも日常業務を超高速でガンガン削減できるなら、vba使いの方が上である
プログラム=効率化
その上で適材適所
この根っこの部分がわかっていれば良い
>>862 機械語が効率高いって...
TSOの時代の発想か?
>>861 そんなこと言って通るわけない。
頭の固い会社舐めすぎ。
>>863 原理的には
って事だろ
それぐらいの理解力がないと(スッップ Sdba-o0lF)と同じようにバカにされるだけの人生になっちゃうぞw
>>862 >>858 と論理矛盾してる部分があるな。
レベルが低いからじゃない。
あまりにも適材適所から外れてるからだ。
このスレの議論もあまりにもではないかもしれないけど、適材適所の点を考慮せずに発言する奴が多い。
これは多分、他言語同士では適材適所の点で普通に被るからだと思う。
だからVBAの特殊性を考慮しない奴が多い。
そりゃ、作られたものを使う側にとってはCとC++じゃどっちでも良い場合も多いからなあ。
>>866 効率の主語が違うって話だよ
機械語が効率高いというなら、それはコンピューターというマシンにとっての効率の意味だ。
でもいまの時代そこは大して価値はなくて、開発スピードとか出来たプログラムの汎用性の
意味での効率に重きがある。
・「マシンの」効率性
・「人の」効率性
主語の違い、な
>>865 その会社負けるだろ?
他社さんはみんなコンピューターを上手に使いこなして効率上げてますよ。
事務作業にいちいち金かけてシステムなんか導入してないですよ?
ってならない?
>>868 基本的にはその通りだが、結局そういう議論って多く使われてる点に重きを置いてて、意味ないと思うぞ。
アセンブラを使う必要のある所では君が価値あるなどと言ってるものに価値が無いんだ。
>>869 全くならない。
だって他もそうだから。
というか、社内全部が君の言う通りならExcelなんて既に存在していない。
>>868 原理的にはっていう意味が理解できてないのか?
意味がない(あるいは少なくなってる)って言うのは
>>862 の後半に書いてあるからいちいち繰り返さなくても大抵の人間は理解してるよ
>>871 そうだな
通らない会社もあるだろう
通る会社もあるだろう
前者が変わらないならしょうがない
競争はとっくに始まってるけどな
>>872 ん?
>>862 の後半に何が書いてある?
ちょっとわからんね
>>853 >>857 にもあるとおりNVIDIAのソレのような常駐系のソフトが妨げている気がする。
結局プログラム組んで効率化できる部分って雑用の仕事だからな もっと上流の仕事はそんなことできない
>>874 > ちょっとわからんね
>> リソース的に問題が無い範囲で、Cやvbaで書くのはなにも問題はない。結果が同じならそれで良い
とかも理解できないのか、可哀想だな
>>877 悪いけど1ミリも理解できない
「原理的には」アセンブラが効率高い
?
わからん、全くわからん
>>876 俺も確かに効率の事ばかり言い過ぎたかも知れない
プログラミングで効率化できる「既存の仕事」には大した価値はないかもね。
ソフトウェアでしか出来ない仕事を新たに着手することが大切だと言いたかった。
>>858 最近のVisual studioとか開発ツールに、VBEのウィンドウサイズをめちゃくちゃ小さくするバグがある
たぶんIDか名前が被ってて、プロパティを勝手に変更するんだと思う
Alt+F11を押したあと、Alt+Spaceでコンテキストメニューを出し、Sキーを押すとサイズ変更モードになるから、
カーソルキーの→と↓を連打すると大きく戻せる
最後にEnterで確定
>>878 高級言語が低級言語をラッパーする際、必ずコストが発生する
で、低級言語を使えばコストが下がるわけでもない。ラッパーはものすごい最適化されているので、大抵の場合はコストがあがる
これが分からないなら無理に話しに参加しなくて良い
vbaの回答にもなんら影響しない
>>875 >>880
ありがとう!解決しない
原因が分かったらまた報告します
今のところ再インストールしてもダメだ
alt→L→V という謎のメニューを覚えてしまったので、まぁ無くてもなんとかなりそうだ
>>882 それはいいんだけど俺が書いた
>>868 が否定される流れが理解できないんだ
>>884 >>868 だけに限って言えば、言ってる事は間違ってない
ただ、
>>863 でよく分かってないんだか、煽りか、アスペか、判断に困る発言を君がしたから、みんなに補足されまくってる
否定というかコイツ大丈夫か的な感じ
そりゃ言われるとは思う
最初俺が
>>863 に書いた
「TSO時代の発想か?」の意味が通じてないのかな?
「CPUの稼働にコストのかかる時代じゃないんだから語るべき効率はマシンの効率のことじゃないだろ?」
という意味なんだがね
>>886 > 「CPUの稼働にコストのかかる時代じゃないんだから語るべき効率はマシンの効率のことじゃないだろ?」
だからそれは
>>862 の後半で語られてるだろ…
>>886 発端は「
>>859 にレスしなかった事」が悪いとしか言いようがない
なんで
>>862 にレスしてるのか。他人の回答にケチつけてるようにしか見えないし、
>>862 を見ても、そんな事は言うまでも無いのはレス見れば分かるだろう。
煽りや論争したいと否定的に捉えられても仕方ない
否定されたくないなら淡々と回答をすれば良い。そこで切磋琢磨することもあるだろう
>>888 >>859 は俺には何の関係もないね。
内容は間違ってないがただの煽りでしょ。
>>862 は論理的に問題ないものの
>>859 に対するレスとしては合ってないと思うぞ。
>>860 相当なおバカさん?
アセンブラで hello world出すフォームちゃちゃっと作ってみ
命令がシンプルだと簡単と勘違いするやつがいるとは想像もしなかった
難しいのと面倒なのの区別がつかないアホってそこそこいるんだなw
面倒なだけで難しくないと言いながら、作れもしない口だけ君が居付いてるみたいだなw
https://kotobank.jp/word/%E9%9B%A3%E3%81%97%E3%81%84-641693 >4 状況などが込み入っていて、対処するのがやっかいである。「立場が―・くなる」「事態を―・くする」
https://kotobank.jp/word/%E9%9D%A2%E5%80%92-644668 >「面倒」は気分としてわずらわしいという意が強いのに対し、「厄介」は事柄そのものが手間がかかってむずかしいというときに多く用いられる。
今の時代、アセンブラが有利な状況はかなり限定されるんだよね 大多数のソフト開発ではコンパイラの方が開発時間が短縮できるし、実行速度もコンパイラの吐くバイナリは十分に速い もっと速度が必要なら、クラウドでも借りた方がずっと時間が節約できるし
家電もだいぶ前から中枢はコンパイラになってる アセンブラが必要なのはもっと低レベルなマイコン 色々な装置の末端のモジュール部分だけとか、玩具に組み込まれたちっこい液晶パネルとか、メモリが極限まで少ないやつはアセンブラじゃないと入ってくれない
やっぱりC#からエクセルファイルのデータを操作する方が簡単だった VBAみたいにそれぞれのファイルを毎回開くとか面倒
ハロワ出すだけならサンプル転がってそうだから、電卓くらい作って欲しいもんだな まあ、口だけだろ(草
>>890 手数が多い、毎回車輪を開発する必要がある言語が難しい言語だと言いたいの?
>>892 俺が作れるかどうかに関係なくお前が「難しいのと面倒なのの区別がつかないアホ」なのは変わらんぞw
もしかしたら
>>859 >>890 は
"難しい" を "めんどう" という意味で使っていたのかな。
「この子は扱いがちょっと難しくて」みたいな使い方。
俺は「相対性理論は難しい」の "難しい" の方で理解して、
「アセンブラが難しい」を疑問に思ったんだけど。
>>902 俺が区別できてるかどうかに関係なくお前が「作れもしない口だけ君」のおつむ悪い人というのは変わらんぞw
>>904 ただ煽りたいだけ、マウント取りたいだけのバカだったか、残念。
VBAはそのファイルしか使えないのが最大の欠点 とにかく面倒臭い
>>859 難しいことできる方が偉いっていう発想は普遍的だと思うぞ。
まあ業務では邪魔になることのが多いとは思うが。
>>907 共有するデータをExcelに蓄積するのは悪手でDBに入れるのが原則だから
そのファイルに閉じていていいんだよ。
>>908 それなー
あまり使わない機能をあえて使ってみると、保守の際になにこれってなったりする
べた書きが一番だ
Excelでやるのが難しいことをあえてExcelでやるのが偉い
>>904 残念ながら「お前が区別できてない」のは事実だが「作れもしない口だけ君」と言うのは根拠のないお前の妄想でしかないw
このスレはさみしい無能プログラマどもの無駄話で潰すスレじゃないんだが。 上のプログラマ板のどこかのスレでやったら?それも判らない日本語すら読めないバカ が集まっているのか?
>>913 その通りバカの集まり
何言っても無駄だし反応したら負け
>>912 残念ながら「お前が作れもしない口だけ君」なのは事実だが「区別できてない」と言うのは根拠のないお前の妄想でしかないw
はい、次どうぞ、おつむ悪い人w
>>917 オウム返で反論した気になってるのか
バカだねーww
根拠はあるよ、区別してたら
> 命令がシンプルだと簡単と勘違いするやつがいるとは想像もしなかった
なんてこと言わないし
逆に口だけ君にはなんの根拠もないよな
あるなら出してみなw
>>846 です
>alt+F11でVBEが開かなくなった時に見るべき場所はどこでしょうか?
何となくwindowsアップデートしたら解決しました
・2ヶ月ほど前から起こっていた
・再起動は何度もしている
・プロセス関係はおかしくなかった
今は完全に正常です
アドインなども特に何も触っていないので、解決策が良く分からずに申し訳ない
関係ないけど Visual Studio 上でもついつい癖で Alt + F11 やってしまってえらい目に遭う
>>898 C#アプリケーションを作って使うことができる職場ならいいが、大半はそんな自由な職場ではない。
国語の問題にするやつは、技術無しの口先だけなやつってわかってるやん カスはほっとけ
プラットフォームのAPIとやり取りできるインターフェース持ってる言語は皆万能だぞ つまりほとんどのプログラム言語は万能
>>926 型の問題があるから直接叩けるのは一部のものに限られるぞ
自作APIかまして間接的にってのも含めていいならかなり近づく
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
http://2chb.net/r/tech/1559872586/ 142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141 名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
vba勉強始めたいのですが、excelとaccessどちらから始めるべきでしょうか?
vbaの勉強を始めたいのですが、excelとaccessどちらから始めるべきでしょうか?
excelかaccessかなら迷わずexcel VBAはレガシーでいつ廃止されても不思議はない機能なので、どうしてもVBAである必要があるのでないならC#とかにしとくことを強くおすすめする
>>929 目的に合う方
VBAは何か具体的な目標(仕事)を処理するするために覚える人が多い
趣味でプログラミングを始めたいなら無料のVisual StudioをダウンロードしてC#とか覚えた方がいい
>>929 ExcelVBA一択
accessVBAは下手に使うとパフォーマンス死ぬほど低下する
ダメダメ。 どちらが良いとか比べるもんじゃない。 大量データを処理するならAccessで決まりだけど、勉強という話になると何をやりたいのかという話になる。 そもそも何でVBAの勉強したいのかによる。 仕事などが絡んでるなら、非常に大雑把な話になるが事務寄りならExcel、システム寄りならAccessかな。
Access使うならSQLを使えるようになった方が良い ExcelVBAを覚えればAccessVBAなんてその知識の流用でコード書ける AccessのメインはSQLだ
>>930 仕事でよく使われるのはExcelの方かな
しかしデータベースに興味があるならaccessでやればいいし
仕事でDB使ってるのでなければExcelがおすすめ データベースに興味があるならMySqlでやればいいが 大量のデータを扱うものだから独学はなかなかきびしい Accessはなんか得体が知れない
>>935 補足しとくと、SQLの基礎知識は覚えるの必須だけど、書くのはクエリーデザイナ使えるようになればほぼok
あれはよくできてる
>>937 分からないなら無理に回答しないほうがいい
>>938 クエリデザイナいいね
マクロの記録とは雲泥の差だ
SQLバージョン古くてちょっと どっちもフロントエンドに使うだけじゃないかな
>>929 Excel VBA習得したら、ACCESSはすぐわかる。
デザイナ-がゴミなのはその通りだけど、むしろ、よりゴミなのはエディタの方かな。 SQLのインデントを毎回消してくれる。 クエリの仕様を画像で見るよりSQLで見た方が分かりやすいのにインテント消してくれるから、全く分からなくなる。
ブックに存在していてVBEのプロジェクトエクスプローラーに表示されないワークシートを表示させるにはどうすればいい?
>>954 超非表示でも見えるはずだから、
どんな状態なのかわからん。
>>955 VBEで見えないワークシートはExcel画面上では表示状態
そのシートをアクティブにしてマクロからActiveSheetでアクセスすることはできるが、シート名やシートのインデックスで直接指定しようとするとエラー9になる
For Each work In Thisworkbook.Worksheets で回してもそのシートは取得できない
Worksheets.Countでも1個少ない数が返ってくる
他のシートからセルの数式で参照とかは普通にできる
何か特殊な隠され状態なのか?と思ったけど初めて見た状態でよくわからない
>>956 う~んわからん。 ファイルをZIP解凍して、↓こうやってちゃんと出てくるか調べてみるとか。 (解凍できなければ、拡張子をZIPにしてから解凍) _rels sheet1.xml sheet2.xml sheet3.xml sheet4.xml : : あ、もしかしたら workbook.xml の方かも。 メモ帳で見た時に、その見つからないシート名が書いてあるかどうか。
>>957 手元にファイル持って無いので明日試してみるよありがとう
>>960 もしかして、Excel 4.0マクロシートとかの過去の遺産なのでは?
>>959 試してみた
workbook.xml の中には問題のシート名が存在し、_relsのsheet*.xmlの数は一つ足りなかった
sheet*.xmlが無いなら一体何に基づいて開かれているのか…
>>963 これが答えっぽい!
forでworksheetsじゃなくてsheetsで回してみたら取得できた
新しく4.0マクロシート作ってみたらやっぱりvbeには表示されないしxmlも作られなかった
こんな罠があったとは…
作った人がシート挿入時に間違えて操作したかな
ついでにそのシート上で4.0マクロ書いてみたら動いたわ
>>965 worksheetsだとグラフシートも出てこないかも
なので、基本的にsheetsで回してる
>>965 アタリだったか。
今どきワンクリックでシート増やせるから間違えようが無いんだけど古いの使ってるのかな
CTRL+F11でマクロ4.0シート作れてしまう 何かわからないから非表示、そして月日が流れ・・・って感じかと
>>967 4.0マクロシートというのを初めて見たんで、完全に普通のワークシートだと思い込んでた
今後まだ残すつもりなら見分け付く何かを入れて貰いたいな…
>>963 レガシー遺産に思い入れはないけど、あなたみたいなレスができる人になりたいと思った
思い付かなかったわ
ファイル名にユニコード文字が入ってるとDIR()関数の結果が化けるんだけど、代わりに何を使えばいい?
>>974 FileSystemObjectオブジェクト
代わりになるのは FileSystemObject くらいかな… 化けるのは変わらんかな… 参照設定必要だから、使い方も含めてggって
>>974 と思ったけどちゃうわ、FSOにしても意味がない
vbaはユニコードそのまま使えないから、
セルに直接書き込むかユニコードに関する関数をかます必要がある
何したいかによるけど、この辺
https://rara-haha.com/2018/10/10/office-9/ ファイル名を加工してリネームするだけの簡単なコードなんだけど 何年も前に作って今まで問題なく動いてたのが、最近エラーで落ちるようになって 原因を調べたらユニコード文字が勝手に半角「?」に置換されてて、ワイルドカード文字はファイル名に使えないからエラーで停止していたという とりあえず糸口は見えたのでがんばってみるありがとう
それなら、こっそりコマンドプロンプトを実行して、 そこでdirするとか。 あれなら変な文字入っていても落ちないよね?
みんな初心者の時って、どんな勉強してたの?? 自分で作った渾身のコードや、ネットから拾ってきたけど、まだ理解できないコードとかって、どっかに書き写して勉強してたと思うんだけど、 ふつうにwindowsのnotepadとかにコピペしたりして勉強してたんですか? VBEの中にどっか溜めといたりしてたんですか? 紙のノートとか使ってましたか??
>>978 変換できない文字は、半角? にするものが一般的
>>982 初心者の時は、本を2~3回、読むだけ。
機能を理解するのが中心で、書いたり暗記はしない
>自分で作った渾身のコード 大切に取っておいたものもあるなぁ でもvbaだとそれを探すよりは即興で書いた方が早い。コードを保存することはなくなった >ネットから拾ってきたけど、まだ理解できないコード 無い 理解できるまで読む >windowsのnotepadとかにコピペしたりして勉強してたんですか? VBEしか使ってない >VBEの中にどっか溜めといたりしてたんですか? 無い >紙のノートとか使ってましたか?? 10年前は、コードではなく仕組みをメモとったりしてたな 今思えばずいぶんと非効率的な事をしていた気がする
>>982 自分はきちんと勉強したんじゃなくて使っていくうちに覚えたんでノートにきっちり書いたりとかはしてないが、VBAだけでなく他の言語も、知ったことを今もPCに溜めていってる
>>982 全部GoogleDriveにxlsmで保存してる。(古いのはxls)
その場で書けるようなものは保存する必要も無いし、渾身のコードではない。
ネットから拾って来たコードは理解出来るまで運用では使わない。
複雑なものって、全部覚えてるわけじゃ無いから理解してても、一から作ると大変だよ。
全て覚えて無くても溜め込んだ中にいつ保存したかは覚えてるから探した方が楽。
あとはGithubやGistに保存。
昔はVBE上から自動でアップロードするの作ってたけど、今は何故か手動でアップロードしてる。
みなさん、ありがとうございます! これからの勉強の参考にさせていただきます!
>>986 煽りじゃなく本気で気になるんだけど、VBEからシコシココピペしてGithubにプッシュするとか、
何でこんな無駄なことやってんだろうって死にたくならない?
自分の書いたコード使ってもらうと承認欲求か満たされて凄い幸せな気分になるよ これを知らないのは勿体無い ただ、vbaではやらんけど・・・ってか、そんな発想が無かった
>>989 Githubで公開とか考えたことないな
VBAやってるとか恥でしかないだろ
他言語のプログラマー()が総務のおばちゃんが使ってるような言語のスレでマウント取りに来るとか恥ずかしくないんか そんなに主戦場に居場所ないのか
googleスプレッドシートをGoogle Apps Scriptで操作すれば良い VBAなんて時代遅れ
>>996 このバカ誰か相手してやれ
(このスレ内でw)
>>988 コピペって必要か?
basファイルそのままじゃいかんのか
ここにいる人達はGithubも使ったこと無いんだろうな。 ピント外ればっかり。 有名人じゃなければ見に来る人もいないし。 承認欲求とか想像してるようなのは使ったことないの丸わかり。
このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 59日 10時間 55分 35秒
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/ ▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
read.cgi ver 07.7.23 2024/12/25 Walang Kapalit ★ | Donguri System Team 5ちゃんねる
lud20250428165910caこのスレへの固定リンク: http://5chb.net/r/tech/1556203263/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。 TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「Excel VBA 質問スレ Part61 YouTube動画>1本 ->画像>3枚 」 を見た人も見ています:・Excel VBA 質問スレ Part49 ・Excel VBA 質問スレ Part76 ・Excel VBA 質問スレ Part79(ワッチョイあり) ・シノアリス質問スレ【SINoALICE】 Part1 ・シノアリス質問スレ【SINoALICE】 Part8 ・シノアリス質問スレ【SINoALICE】 Part4 ・【EOS】ECHO OF SOUL 質問スレ Part.3 ・Minecraftの質問に迅速丁寧に答えるスレ Part6 ・【PS4/Switch】DIABLO3 ディアブロ3 質問スレ Part61 ・LINE Pay 質問スレ Part1 ・Windows総合質問スレッド Part1 ・Mozilla Firefox質問スレッド Part172 ・Mozilla Firefox質問スレッド Part177 ・Mozilla Firefox質問スレッド Part176 ・Galaxy S8 / Galaxy S8+ 質問スレ Part1 ・サマナーズウォー: Sky Arena 雑談質問スレ61 ・【アズレン】アズールレーン 質問スレ Part51 ・【アズレン】アズールレーン 質問スレ Part41 ・【Dead by Daylight】PC版質問スレ【DbD】 part11 ・【FEH】ファイアーエムブレム ヒーローズ 質問スレ Part.21 ・【シャドウバース】shadowverseデッキ診断・質問スレ part11 ・くろネコONLINE 質問スレ Part6 ・DELL SC4x0 T10x 質問スレ Part1 ・Windows 10 質問スレッド Part69 ・Windows 10 質問スレッド Part67 ・[戦場の絆]どんな質問にも全力で答えるスレPart64 ・[戦場の絆]どんな質問にも全力で答えるスレPart62 ・5chブラウザ「ChMate」質問スレ Part67 ・5chブラウザ「ChMate」質問スレ Part68 ・【PoE】 Path of Exile 質問スレ part45 ・Android 質問スレ Part62 【アプリ質問は他で】 ・ストリートファイター6初心者・質問スレ Part63 ・ストリートファイター6初心者・質問スレ Part68 ・ストリートファイター6初心者・質問スレ Part60 ・【PoE】 Path of Exile 初心者・質問スレ part57 ・【PoE2】 Path of Exile2 初心者・質問スレ part2 ・【ガデテル】ガーディアンテイルズ初心者質問スレ part6 ・【PS4/XB1】The Division 質問スレ part6【ディビジョン】 ・VB.NET質問スレ(Part44) ・MTB初心者質問スレ part104 ・foobar2000質問スレ Part32 ・iPhone 質問スレッド part45 ・【PS4】仁王2 質問スレ part1 ・マイニング質問スレ Part.2 ・iPhone 質問スレッド part38 ・ロード初心者質問スレ part425 ・iPhone 質問スレッド part35 ・iPhone 質問スレッド part29 ・Windows11質問スレッド Part1 ・iPhone 質問スレッド part30 ・ロード初心者質問スレ part429 ・ロード初心者質問スレ part450 ・ロード初心者質問スレ part413 ・au by KDDI 質問スレ Part.240 ・Windows 10 質問スレッド Part50 ・ドラゴンズドグマ質問スレ part41 ・SKYRIMの質問に全力で答えるスレPart81 ・Twitter 初心者&質問スレ Part.40 ・Twitter 初心者&質問スレ Part.43 ・クロスバイク初心者質問スレ part17 ・クロスバイク初心者質問スレ part17 ・Blender 初心者質問スレッド Part29 ・Cubaseシリーズ 初心者質問スレ Part21 ・【スクスト】初心者・質問スレ part44 ・ドラゴンクエスト11 質問スレpart.7
09:25:32 up 64 days, 10:24, 0 users, load average: 8.30, 9.42, 9.31
in 1.6490161418915 sec
@1.6490161418915@0b7 on 062022