Excel VBA 質問スレ Part58
レス数が1000を超えています。これ以上書き込みはできません。
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part57
https://mevius.5ch.net/test/read.cgi/tech/1536583359/ Dim Otimpo As Variant
Set Otimpo = New Penis
Otimpo.Insert Woman.Vagina >>1
=LEFT("おつかれあかたあまや",4) ややExcelと離れるのですが、他に適切な場所が見当たらないのでこちらで質問。
WordやPowerpointに、埋め込み、またはリンクで表示されているExcelの表やグラフについて、
1:ファイル名(フルパス、ないし相対パス)
2:表示されているシート名(またはシート番号)
3:表示されている表の範囲(A1からB20まで、みたいな)
を、WordやPowerpointで動かすVBAから列挙する、みたいなのを作りたいと考えてます。
(1)についてはある程度(たまに取れないのがある)なんとかなるのですが、
(2)と(3)の手段が分からないでいます。
この辺を得る手段について、ご存じの方いましたら教えてください。 表示されているシート名 って要は現在アクティブなシートってことでしょ?
ActiveSheet.Nameで取れるんじゃ? >>8
やったことがないから保証できないが、
OLEObject.ObjectプロパティからOLEオブジェクトのコントロールを取得できるはず
ここからExcelのオブジェクトモデル経由でシート名等は取れるかも >>9,10
そういえば、シート名はそれで取れますね。うっかりしてました。
ただ、Powerpointで表示されている、シート上の範囲( >>8 の(3) )がマジわからん。
ActiveSheetまでは到達出来るので、シート全体のデータは取れるのだけども、
表示範囲となるとどこを見れば良いのやら…… 表示範囲っての意味がよく判らない。使用されている範囲ならUsedRangeプロパティだけどそうじゃない? QueryTables.addを利用して取り込んだテキストデータを
TextFileFixedColumnWidths = array(5,4,2)
とVBソースに記述して5、4、2バイト目で区切ってエクセルに貼り付けしているのですが、
このarrayのカッコ内の値5,4,2の部分を1つのセル内に定義しておき、そこから取得して処理する方法を教えてください。(セル値を変えるだけで区切りバイトを変えられるようにしたいです)
セル内の定義は下記のような感じの形式で実現できたらいいなと思っています。
5,4,2
または
"5","4","2"
など
よろしくお願いします。 >>12
UsedRangeは、まさに「Excel上で利用されている範囲」になるので、ちょっと違う。
探しているのは、(WordとかPowerpointとか) 「被貼付側から見えている範囲」。
コピペを行うときにExcel上で範囲指定してる、まさにその範囲の情報が欲しいのです。
『広い範囲が使われているシート(埋め込みオブジェクト)の一部分だけが表示されている時、
その表示部分を特定する』がやりたいの。 >>13
3つパラメータがあるならそもそも3つのセルで管理すればいいんじゃないかと思うが、区切る回数も動的にしたいのかな?
パラメーター記述用のセルに5,4,2と入力しておいて、コード内でSplit関数を使いそのセルの値をカンマ区切りで配列化するのが普通かな
そうやって得たString配列の要素全てをCIntで型変換してInteger配列に入れ直せば、TextFileFixedColumnWidthsプロパティに代入できる >>15
区切る回数も動的にしたいんです。
さっそく試してみます。ありがとうございます。 >>15
無事にやりたいことが実現できました。ありがとうございました。勉強になりました。 ユーザーフォームのボタンでExcel以外のファイルを開くのにShell.Execute使ったんだけど、ボタンを押しても何も反応しない
CreateObject("Shell.Application").ShellExecute "c:\test\test.pdf" >>18
試してみたけど、そのコードで問題なく動くなあ >>18
デザインモードがオンになってるとかじゃね 検証ありがとう!
ちな標準モジュールに書くと普通に動く。
どうもユーザーフォームに書くとダメみたい >>21
違った
ユーザーフォームじゃなくてユーザーフォーム内のボタンね ユーザーフォーム作ってボタン配置してボタンのOnClickにコード書いたけど問題ない みんなマジか〜
環境は2010、2007ともにダメだった。
明日2016で試してみる。
ちなみにパスがフォルダ指定までなら動く。
もう意味わからん >>24
もしかしてpdfをダブルクリックした時に「このファイルを開くアプリ」の選択メニューが出てない? >>25
すまぬすまぬ。実は開かないのは.xlsxや.xls。
さっきやったら.txtや.bmpに書き換えるとちゃんと動いた。関連付けがおかしいかと思ったけどファイルダブルクリックでexcelファイルは開く。 >>27
やっぱりそうですよね、、
ありがとうこざいました! >>26
VISTA32ビットのEXCEL2007で再現した
ちなみにブレークポイントはってステップインさせたらちゃんと動いた 切り取り・コピーしようとしたら「クリップボードを開くことが」と表示されました 前までは正常に出来てたのに急にあんなになるなんて
どうしたらなおるんですか
原因不明の謎の症状 >>30のところ、再起動したら直りました
自己解決 WorksheetFunctionを使うと遅くなると聞きました。セルで計算して取得したほうがいいですか? >>32
遅いと言っても、よほど大量のデータを処理しない限り大差ないから気にしなくていい workbook.Aのマクロから、workbook.Bのマクロパスワードを解除できますか?
*パスワードは分かっています
**windows10 / excel 2016
同じパスワードをかけた大量のファイルのマクロパスワード解除が必要になった為 >>36
ありがとうございます。
VBAでsendkeyでパスワード入れたいのですが、プロジェクトエクスプローラーのウィンドウで、目的のworkbook.Bを選択してパスワードウィンドウを開く事がうまくできないところです。 >>37
いや、Sendkeysは絶対使っちゃいかんものNo.1だろ。
制御出来ないからな。
わかってて一過性のプログラムで使う以外に使うことは無い。 >>35
MSDNライブラリでWorkbookオブジェクトのOpenメソッドの説明を詳しく読めば解決 >>40
マクロのパスワード解除ってワークブックオープン関係なくね。 そもそもマクロパスワ―ドってことはVBEを弄ることになるから普通はセキュリティ設定に引っかかる。
VBAでVBEを弄れる設定になってるなら、参照設定でVisualBasic for Applications Extencibilityを追加して頑張ることになるわけだけどセキュリティ皆無となって危険だぞ。
それにそのコードがウィルス判定されるかも。 >>41
この質問者が「解除」という言葉で言いたいのは、パスワードなしのファイルとしてファイルを再保存することじゃなくて、ただ単に読み取りパスワード付のファイルを普通に実行することだと思うぞ
Sendkeysとか恐ろしいことを上で言ってるので >>43
プロジェクトエクスプローラーって言ってるのにそんなわけ無いだろ >>43
マクロのロック解除です。
ワークブックと書いて混乱を招いてしまいました。
ファイルは開けます。
現状はマクロでVBAをアクティベートし、vbkeyで操作する方法で試してますが未だにうまく動かないです。 >>45
VBAのsendkeyは不安定なので、vbsとかを経由しろとか聞いたことある気がする。ちょっと調べてみては? フォルダ内にある全てのtxtファイルをピボットテーブルで変換して一つのファイルに結合するにはどうしたら良いですか? >>48
一つのテキストファイルあたりExcelの104万行を超えています >>49
Accessに取り込んで104万件以下に整理してからExcelに読み込む >>47
vbsとか経由でも駄目だろ。
何が駄目かと言うと入力したい所にピンポイントで入力するわけじゃ無いところ。
直前に入力したい所にフォーカスを当てるとか工夫してる人もいるけど根本的によろしく無いんだよ。
動かしてる時に別の何かをクリックしたりするとそっちに入力されちまう。
改めて確認するけどVBAがパスワード保護されてコ―ド編集出来ない状態になっている。
パスワードは分かっていて手動で解除出来るけどブックが大量で解除と再設定が大変という問題? >>51
そのテキストファイルはどんなファイル?
データベースのデータのようなものなの?
その104万行というのは、そもそも全部必要なの?
全部必要じゃない、特にもし必要なのはごく一部というのだったら、テキストファイルとして開いて1行ずつ読み込んで、必要あるデータのみ抜き出すという方法が良いと思う。
全部必要だったらAccessを使うべきデータ量だな。
でも、そのデータをどんな風に扱いたいか分からないから一概には言えない。 >>52
おっしゃる通りです。
マクロで大量に作ったマクロパスワードが同じファイルのパスワードを解除し、マクロを消すプログラムを作りたいです。
マクロを消すプログラムはマクロパスワード無しのファイルに関しては全てうまく動いています。
またエクセルファイルにはパスワードはかけていません。
過去に作ったエクセルファイルは残したままマクロを全て消せとの指令で必要となっています。 そんな大量のデータ、一行ずつ読んでたら日が暮れるぞ。
バイナリモードで開いてメモリの許す半範囲で読んで、末尾の改行までを消すの繰り返して読み込んだ方が遥かに早いよ 100万行越えのデータは、まず複数列、複数シートを使って読み込んでみれば?
内容によっては固まって何もできなくなる悪寒しかないけど 100万行が大量か?
それはどんな100万行かによる。
100万個の改行だって100万行だ。 >>54
>>55が書いてるようにxlsxで保存するようなのは駄目なのか? ユーザーフォーム上のクリックボタンが、Tabで通過する分には何も起こらないのだけどカーソルキーで通過するとチェック入るのだけど、コード書いて制御するしかない? EXCELのVBA使いたいのですが
どうやったら起動できますか?
最初からEXCELにソフト入ってるんですか? Microsoft Visual Basic for Applications(VBA)エディターが開きます。
Alt+F11 >>55
>>59
xlsx保存し元ファイルを全て消すでやりたい事ができました。
ありがとうございます フランス政府からマクロン消したら市民が泣いて喜ぶよね
ありがとうございます "ab","bc","c
d"
みたいなcsvがあり、これを処理速度重視で読み込みたいんですがなにかいい方法無いですかね
なんか配列操作で計算、集計して最後シート出力すると早いと思うので配列に入れたいんですが1行ずつの読み込みだとうまく行かずで困ってます
fsoで全文読んでも改行されてますし… >>69
めんどそう
そんなんじゃ " のエスケープとかも考慮しなきゃいけないんでしょ?
だけど気合い入れてアルゴリズムごりごり実装するのを勧める >>69
ボトルネックがFile I/Oならバイナリで全部読んでコンマでsplit
ただし文字列変数の限界は2GBなのでファイルサイズに注意 どうでも良いけど1レコードの定義をちゃんとしないと膨大なカラムの1レコードデータになっちまうぞ。
バイナリ読み込みでやるのは確かに早いんだが、そこを気にする程のデータ量なのかなあ。
この間の100万行デ―タもサンプル作って読み込んだら10秒とかだったぞ。 全文読んだ後にレコード単位に分けてカンマ区切りで分けてーをしっかりアルゴリズム書くて感じですかね
そこそこ面倒臭いですねこれ セルコピーでValudatonの中身までコピーする方法ってありますか?
愚直にコピーすると設定したプルダウン情報が消えてしまいます >>73
エスケープなし、カンマのみ項目なし、改行のみ項目なしなら楽なんだけどね >>73
自己レス
adodb使ったらなんかいい感じにいけました 外部のExcelマクロを呼び出し、その処理の中でMsgBoxが表示された場合、それを呼び出し元で認識する方法はありますか?
Msgboxを操作したいとかではなく、表示されたということがわかればいいです >>77
外部のExcelマクロというのが別プロセスのExcel上で動いてるマクロという意味なら方法はある。
内部でもExcelが落ちる可能性を承知するならある。 >>78,79
APIでの実現方法がよくわからなかったので、呼び出されるマクロに認識用のモジュールを追加することにしました
ありがとうございました >>76
自己レス
adodbも面倒臭かったacces無いんでcsvのデータ型判定の為にschma.iniみたいなの作る必要あったり…
元の文字コードとかbomとか考慮しないといけないけどworkbookのopen使ってマズかったらエラー出した方が早かったかも 普通にOpenしてLine Inputした方が速くて簡単だったんじゃない?
と思ったら文字コード?BOM?
最初の質問は何だったのか。
文字コード考えなきゃならんのなら、
最初から選択が限られるだろ。 データ内の改行やカンマを正しく解釈するためにモジュール自作してる この手のことはだいたい同じ事を先に考えている人がいるから、
参考にするなりDLして利用するなりすれば、やりたいことは秒で完成させられる
理解するのはまた別で、ちゃんとソース読めな話になるけど。
たとえば、「VBA CSV BAS」でググって即出るヤツだとこんなとか。
ttps://github.com/sdkn104/VBA-CSV Range("C1:C10") = "=A1+B1"
とセルに式を埋め込むと自動で A2+B2、A3+B3 とやってくれますが
WorksheetFunctionで上と同じ事を1行で簡単に書くことってできますか?
うまい方法思いつかないのでいつも 関数埋め込み→値貼り付けで式を消す とやってます
WorksheetFunctionのループは式の埋め込みより遅かったです >>89
わざわざVBAを使って、最後に値貼り付けするぐらいなら、俺ならVBAで計算して結果だけ書き込む
For r = 1 To 10
cells(r, 3) = cells(r, 1) + cells(r, 2)
Next
式がワークシート関数バリバリでVBAで再現するのが面倒なら、最後の値貼り付けをVBAで書く
set r = Range("C1:C10")
r.Copy
r.PasteSpecial Paste:=xlPasteValues Range("C1:C10").Formula = "=A1+B1"
Range("C1:C10").Value=Range("C1:C10").Value >>89
人に教えてもらう分際で、一行でとか注文つけてんじゃねーよ。 ワークシートか配列へ代入したり配列をワークシートに直接貼り付けたりって技いつ頃から一般的になった?
なんか20年前からやってたという人がいて本当かよと思ったんだが。 >>94
特定の個人が知ってたのと、一般的かどうかなんて全然関係ないじゃん
ExcelもVBAも20年以上前からあるんだし、知ってても不思議じゃない >>95
ああごめんなさい
「そんなの20年前から一般的だったよ」みたいなニュアンスで言われたんですよ。
自分としてはここ2〜3年で知られた新しめのテクニックだと思ってたんで、「マジか?」と。 20年前のことは知らんけど、さすがにここ2〜3年てことはない
もっと昔から知られてた >>97
ですね。
そもそもいちいちセル移動して操作なんて、トロくさくてやってられん。
Google Apps Scriptなんかでも配列で操作なんて、速度稼ぐ為に普通に使う枯れたテクニック。
あまりにもセル操作という初歩だけが広まった弊害だね。 A いつも自分がやっているやり方
Range("C1:C10000") = "=A1+B1"
Range("C1:C10000").Copy
Range("C1:C10000").PasteSpecial Paste:=xlPasteValues
B 90案
For r = 1 To 10000
Cells(r, 3) = Cells(r, 1) + Cells(r, 2)
Next
C 92案
Range("C1:C10000").Formula = "=A1+B1"
Range("C1:C10000").Value = Range("C1:C10000").Value
D 配列
計算元の配列= Range("A1:B10000")
For i = 1 To 10000
計算結果格納配列(i, 0) = 計算元の配列(i, 1) + 計算元の配列(i, 2)
Next i
Range("C1:C10000").Value = ans
E 半分配列
For r = 1 To 10000
計算結果格納配列(r, 0) = Cells(r, 1) + Cells(r, 2)
Next
Range("C1:C10000").Value = ans
A0.035
B0.265
C0.031
D0.015
E0.062 時間(秒)
A 0.035
B 0.265
C 0.031
D 0.015
E 0.062
配列は頭がごちゃごちゃして苦手なんだけどやっぱ配列かなー
いつものは書くのが楽だけど見栄えがあんま良くない
Range("C1:C10000") = "=A1+B1"の部分を数式残さずWorksheetFunction一括で書けないかなーと思ってた
みなさんどうも Range("c1:c10") = Evaluate("=a1:a10+b1:b10") >>102
速くて簡潔
今までの中で一番早い
Evaluate知らないので勉強してみます。有難う。 >>102
あーなんかいいのがあったはずだと思っていたがEvaluateかーー
くやしいから
Range("c1:c10") = [a1:a10+b1:b10] データを蓄積、変更して管理するシステムをVBAで作るとして、普通、データとプログラムを分けるよな? >>105
分けるけど、わざわざそういう質問するってことは現状データをBookに蓄積先してる状況なのかな?
入出力画面をExcel & VBAで作って、データはDBに蓄積するってのがこの場合の模範解答だと思うが。 >>94
配列数式ってのは大昔からあったな。エクセルはVBA書かないと標準機能ではクロス集計が
面倒くさいダメダメ君だった。「条件付き合計式ウィザード」なんていう冴えないシロモノに失望して >>96
おまえが2〜3年前に知ったからってなんで勝手に一般化して皆そうだと思うんだよ みんな、落ち着いて聞いてくれ。
間も無く2019年だ。2019だぞ?
配列に突っ込んで一括処理するのは、少なくともEXCEL98から使われてきた手法だ。
既に20年経過してやがる。 >>109
٩(๑`^´๑)۶\(^-^ ) ヨシヨシ 空白行が複数ある範囲から、空白行を除いて配列に取り込むのはどうやるのが効率がいい?
条件
・行内は完全に空白かそうでないかで中途半端にデータが入ってるところはなし
・空白行を除いたデータ総数は300前後で最大で16程度に分割されている
・空白行は連続することもある
一行一行調べるより、データの塊の上下の行番号を調べるのが正解な気がするんだけど >>111
そのデータがワークシート上にあるんなら、オートフィルターかければ?
VBAで1行で書けるぞ >>111
> データの塊の上下の行番号を調べる
それ一行一行調べないとわからないんじゃね?
普通に一気に配列に読み込んで空白行を詰める処理を入れればいいかと
>>112
フィルタ掛けた結果を一気に配列に読み込むってできたっけ? >>109
fjだかのExcel会議室では配列がホットな話題になったよ
t.Tanaka氏とかもコテハンで議論に参加してさ
なつかしいなあ >>115
当時からおっさんだったら、今頃じーさんかも知れないぞ。 >>113
下からCtrl↑で止まったセルの行番号を取得するを繰り返せば毎行調べなくて済む
オートフィルターで絞った結果を可視セルだけ選択しても、取り込まれるのは左上だけになるから無理だね
一行一行調べる羽目になる
やるなら作業シート作ってコピペしてから取り込むんだけだ、それはやりたくない訳で >>117
> 下からCtrl↑で止まったセルの行番号を取得するを繰り返せば毎行調べなくて済む
それはそうだけど速いかどうかは状況次第だね
>>112 > VBAで1行で書けるぞ
って方法があるみたいなことを書いてるので聞いただけ >>118
元々、どういう考えで>>112が言ったのかは分からんけど、配列に取り込むまでを1行って言ってたのかなあ。
オートフィルタをかけるコードが1行という意味じゃないかな。
だからといって、そこからどうするんだ?とは思うけどさ。 >>119
元々は
>>111
> 空白行が複数ある範囲から、空白行を除いて配列に取り込むのはどうやるのが効率がいい?
なので、フィルターだけの事を言われても… クリップボード経由でデータを一気に取得、オートフィルタにも対応
※最小設定FM20.DLLが必要
Sub Macro1()
ActiveSheet.Range("A1:C10").Copy
With New MSForms.DataObject
.GetFromClipboard
str = .GetText
End With
MsgBox str
End Sub >>120
そりゃそうだけど、>>112を読む限り1行ってのはオートフィルタだけについて言ってるように受け取る方が自然じゃん。
だから、そこからどうするんだという感想になるわけ。
そもそも>>112は配列に取り込むことなんて想定してないかもしれない。
空白があって見にくいのを何とかしたいんだろうとか、勝手に先読みして配列に取り込むという元のお題をほったらかしとか。
そもそも300行程度のデータならどんな方法でも良いんじゃないかと思う。
そんなんで思い悩むのは無駄だよ。 それこそVariant型配列にでもぶっ込めば手っ取り早いし処理もそれなりに速そう UI Automationのレイトバインドって、どうやればいいんでしょう?
レジストリ調べてもクラスID出てこないし・・。 >>128
参照設定は出来るのに、CreateObjectは不可なんてのがあるんですか? >>132
どこから日本語とか出てくるんだろう?
日本語ができないという自覚はあるってことなのか? w グラフ作成マクロ作ったんだけど結構面倒くさくない?慣れの問題?
特に細かなフォーマットとか云々がめんどい
それに出力シートのセルいじられて(1行目削除)出力セルがズレたせいでフォーマット崩れたとか言われて頭痛いんだけどどう対処するのが良いのこれ 使用方法まとめたドキュメント作ってないなら作成者が悪い。
作ってるなら碌に読まないで文句いってる使用者が悪い。
作り方次第で解決するとは思うが。 >>134
逃げる。
いや、マジで。
フォーマットを壊す人ような人の依頼を受けると碌なことない。
どうしてもやらなきゃダメなら、
ちょっとでも崩れたら、エラーメッセージが出るようにする。
あなた壊しましたね。直さないと出力できませんよ的な。 >>133
人の話が理解出来てないから、日本語という言葉が出て来るんじゃないの。 >>140
> 人の話が理解出来てないから
既にガイジかよって指摘されてるだろ w
そもそも配列に取り込むという要件明記されてるのにオートフィルターなら1行で書けるとか頓珍漢にも程がある CreateObject("Excel.Application").ExecuteExcel4Macro("CALL(DLL, 名前, ""JJ"", variant型の配列)")
これにvariant型の配列を渡す場合はどうすればいい?
OとかKとか入れてもダメなんですけど。
普通に呼べとか言わないで。 >>143
不可能
1セルずつしか処理できないのが特徴だし >>141
想像した通りだ。
日本語勉強しような。
俺は>>112ではないという基本的なことも無視かね?
>>112には全く賛同出来ないが、かといって>>112は君の要件に対して1行で書けると言っているとは限らないと読み取れると言っている。
1行で書けるというのは、その直前のオートフィルタをかけるという部分を受けてのものとも読み取れるのが日本語の解釈だ。
もちろん、君の要件に対してのものというのを全面的に否定するものでもない。
どっちにも受け取れるのが日本語の曖昧さだ。 >>146
> >>112には全く賛同出来ないが、かといって>>112は君の要件に対して1行で書けると言っているとは限らないと読み取れると言っている。
別に俺が出した要件じゃねーけどな
敵は1人に見える病気かな? w
フィルター云々はいいとして要件にそぐわない事書いて意味あるんか?
って話な
フィルター掛けときゃすげー楽になると言うならまだしも>>117とか恥の上塗りにしかなってないだろ
ここまで説明しないとダメなの? >>147
>別に俺が出した要件じゃねーけどな
全く、馬鹿らしいがそんなことは想定済みだ。
こういう場合、要件出したのが君だろうが違かろうが「君の要件」と書いておけば通じるという想定だ。
それまでの君の発言を見て要件出した奴かどうかなんて調べるのがめんどうということだ。
>フィルター云々はいいとして要件にそぐわない事書いて意味あるんか?
って話な
そんなことは要件出した奴が判断することだし、俺はそんな所にレスしたわけじゃない。
単純に1行が要件そのものに対してとは限らんと言ってる。
それに「VBAで1行で書けるぞ」が要件のことを言っていなくてもトータルで要件にそぐうこともあり得る。
フィルタのコードに1行、他に何十行かで要件を満たしているかもしれないわけだ。
>フィルター掛けときゃすげー楽になると言うならまだしも>>117とか恥の上塗りにしかなってないだろ
>>112=>>117とは限らん、というか違うと思うわけだが、イコールとは限らない以上、>>112の意図が「フィルター掛けときゃすげー楽になる」という可能性を排除できない。
つまり、君の言う「まだしも」の可能性が残っている。
それに、俺が書いたように>>112が要件にそぐわないものを出した可能性もある。
したがって、「1行で書ける」というのが要件そのものに対してではなくフィルタをがける処理のみに対してである可能性は十分ある。
これは日本語でのやり取りなら十分あり得ることだ。 >>146
>ここまで説明しないとダメなの?
ちなみに、君のその説明、一番最初から分かってるから。
その君の主張が甘いんじゃねということを言ってるのが最初からの俺の主張だぞ。 >>149
アンカー間違えた。
>>149は>>147へのレスな。 >>148
> つまり、君の言う「まだしも」の可能性が残っている。
なら早く出せよ w
出せない時点で中身のない長文乙
にしかならんよ >>151
???
出すのは>>112であって俺では無いし、それにこの議論が始まるまでの話だから今さら出す、出さない関係無く>>118のの時点で1行が要件に対してと決めつけたのは間違いなんだが。 >>145
セルじゃなくてvariant型の配列。 >>152
お前に出せないのはわかってるよ w
出せないのに
> つまり、君の言う「まだしも」の可能性が残っている。
とかアホでしょ?
って話な
そもそも>>118どころか>>113の時点で
> フィルタ掛けた結果を一気に配列に読み込むってできたっけ?
で>>112がおかしいことを指摘してる >>154
???
まだ分かって無いのか?
>>112の意図がまだ分かっていない時点では>>112が正しい可能性が残っていると言っている。
残っている以上、>>112をおかしいと決めつけたお前がおかしいということだ。
出す必要なんて最初からないんだよ。 >>154
>そもそも>>118どころか>>113の時点で
> フィルタ掛けた結果を一気に配列に読み込むってできたっけ?
で>>112がおかしいことを指摘してる
>>112がフィルタをかけることだけについて1行と言っているのなら―気に読み込まなくても>>112は正しい可能性が残る。
つまり、お前の指摘は間違っていることになる。
>>112がおかしいというのなら正しい可能性が残らないように指摘しなければならない。 >>155-156
で?
役に立たない長文書いてもなんの解決にもならんよ
恥の上塗り重ねてるだけ w >>157
なんだ、反論できんのか?
だったら何も言うことは無い。
まともに日本語が理解出来ないのは哀れだねえ。 >>155
> >>112が正しい可能性が残っていると言っている。
バカなの?
>>112の内容が間違ってるとか言う話じゃなくて「頓珍漢」だと言ってるの
まあ>>117はさらに頓珍漢だけどな
> まともに日本語が理解出来ないのは哀れだねえ。
ブーメラン過ぎる w >>159
アホ。
頓珍漢ではない可能性が残っている。
お前が勝手に決めつけているだけだ。 だいたい、俺の意見はお前と近いんだよ。
お前みたいな甘さが無いだけで。
だから「そこからどうするんだ」という発言が出てる。
頓珍漢だろうとは思ってるの。
確定してないから決めつけてないだけで。
だいいち、頓珍漢だとしてもお前の決めつけが間違ってるのは変わらないだろう。
頓珍漢だなんてのは反論になってないな。
だから日本語を勉強しようなという話になる。 >>162-163
頓珍漢の根拠まで書いてあるのに何を言ってるんだこのアホは w
>> 空白行が複数ある範囲から、空白行を除いて配列に取り込むのはどうやるのが効率がいい?
> なので、フィルターだけの事を言われても… >>166
じゃ、ひとつ
Excel VBAで、Google OAuth認証などをやってるが、Clien_IDやSecretはコード中に書くとしても、取得したAuth CodeやAccess_Token、Refresh_Tokenなどはどこに安全に格納出来るか?
.NETアプリやAccessのようにappconfigや仕舞えるテーブルが無いので、皆どうしているのかね? >>167
そんなものをVBAで作らない
もしどうしても必要があるなら外部のコンソールアプリを呼び出す形にする VBAで何をやろうとしてるんだよ
何のためにそんな実装するのか詳しく app.configとかテーブルとかが安全だと思ってるなら、
セルに書いといて保存でもテキストファイル書き出しでも好きにすればいいんじゃね >>167
> appconfigや仕舞えるテーブル
そんなのでいいなら適当なファイルとかブックのドキュメントプロパティに入れときゃいいんじゃね? >>164
バーカ
>>112の書き方ではフィルタだけとは限らない。
>>112だけで終わりとは限らない書き方だろうが。
あの書き方では、その後に何かあるか、それとも後は察しろという風にも読み取れる。
だから俺は「そこからどうするんだ」という発言になる。
たぶん頓珍漢だろうけど、そこからどうするか聞いてからじゃないと確定出来ないからだ。
それに頓珍漢で逃げたいかもしれんが、頓珍漢かどうかは反論にならない。
頓珍漢だとしても1行が要件全体にかかってると決めつけたお前の解釈が甘いことには変わりが無い。 お前がどう思うかなんてどうでもいい
>>112は>>111の要件を満たしてない頓珍漢なレスであることに変わりない
まあ、続きのつもりかどうかは知らんが>>117みたいな斜め上のレスをするアホもいるけどな w >>168-171
結局、お前らがここで、くだらない議論してる間抜けを招いてる元凶ってにはよくわかったよ。
まともな回答もできん、技術力ないアホってのもなwww > 元凶ってにはよくわかったよ。
煽ろうとしてカミカミとか恥ずかしすぎるww >>173
つまりお前の日本語解釈能力の低いことが確定ということだ。
甘いねえ。
>>117は>>112の後だ。
お前の指摘の後でもある。
>>117の存在はお前の頓珍漢だという決めつけを補強しない。
なぜなら>>117より以前にお前は決めつけをしてるんだからな。
因みに俺は>>117じゃないんで別に>>117が頓珍漢でも全くかまわん。 >>176
> つまりお前の日本語解釈能力の低いことが確定ということだ。
根拠のない勝利宣言 w
低能にありがちな行動 >>177
根拠?
既に何度も示してお前が反論出来なくなっているわけだが。
>>112は要件全てではなくオートフィルタのみについて1行と言っていた可能性がある時点でお前の決めつけは間違っている。
頓珍漢かどうかは関係ない。
>>112が頓珍漢でもお前は間違ってる。 何故、お前が間違った決めつけをしたのか?
それはおまえの日本語解釈能力が低いからだ。 >>180-181
> >>112は要件全てではなくオートフィルタのみについて1行と言っていた
それが頓珍漢だって言ってるのに w
続きがあるかもしれないから頓珍漢じゃない可能性があるとかバカかよ
そんなこと言い出したらなんとでも言えるわ 単なる罵り合いを見せつけられるくらいなら過疎ってるほうがよっぽど良い >>183
バカ?
頓珍漢でもお前の間違いは変わらんと言ってる。
反論出来ないからといって見当違いばかりだな。 この罵り合いって一人で自演やってるの?
それとも馬鹿が2人もいるの? もう言ってることが無茶苦茶
> 反論出来ないからといって見当違いばかりだな。
またブーメランかよ w >>187
頓珍漢でもお前は間違ってるのは認めるのかい? >>187
>>112はオートフィルタのみについて1行と言った可能性があるのに要件全てに対してだと決めつけたのは間違いであり、>>112が頓珍漢かどうかに関係なく>>113の発言は思慮が浅いと思うんだが、それについては反論出来ないということでOK? 見当違いなのは、頓珍漢かどうかに関係なく間違いだと言ってるのに、いつまでたっても頓珍漢で押し通そうとしてるからなんだが。 >>188-189
もしかして
> そんなこと言い出したらなんとでも言えるわ
っていう意味すら理解できないガイジ? w >>191
そんなことは無い。
日本語には2通りの解釈が出来る場合があって、>>112は明確にその場合だ。
どんな場合でも複数の解釈が出来るとは限らんし、普通に複数の解釈が出来る場合に決めつけをすることは無い。
で、お前は間違えを認めるのか? >>192
2通りの解釈?
後付していいなら2通りどころかなんとでも解釈できるように書けるぞ
> そのデータがワークシート上にあるんなら、オートフィルターかければ?
> VBAで1行で書けるぞ
でも、〇〇した方がもっといいけどな
ってか? w >>193
???
本当に日本語ダメなんだな。
後付けなんてしてない。
>>112のみで2通りに解釈できるんだが。
それを理解出来ずに見当違いの言い訳するから「日本語勉強しような」と言われるんだ。 >>194
お前が誰か知らんけど
> >>112だけで終わりとは限らない書き方だろうが。
とか書いてたアホがいたっけな w >>195
また、見当違いか。
>>112だけで2通りの解釈ができ、それをお前が理解出来なかったのは認めるのかい? >>196
> >>112だけで終わりとは限らない書き方だろうが。
とか書いてたアホとは他人なの?
なら黙っててね
それとも恥ずかしくてごまかそうと必死なのかな? ww >>197
まず、お前が間違ってたのを認めるかどうかが先だ。
お前の間違いは1つだけでは無いので話を変えて逃げようとしても無駄だ。
後付け云々についてはその後だ。 悔しいのは分からんでも無いが、客観的に見て自分に間違いがあるなら認めような。
間違いが無いなら別の話に持ってこうとせずに真正面から反論すべきだな。 >>198-199
ごまかそうと必死すぎて笑える
まずは
> >>112だけで終わりとは限らない書き方だろうが。
> とか書いてたアホとは他人なの?
に、答えなよ >>200
誤魔化そうとしてるのはお前。
一番最初の話は>>112の解釈をお前が間違ったのかどうかだろ。
>>119の時点の話だ。 お前がどう言おうと>>112単体では>>111の要件を満たさない頓珍漢なレスである事実は変わらんよ
残念だったな w >>202
バー力。
頓珍漢でもお前は間違ってると言ってるだろ。
つまりお前はまだ何一つ反論をしていない。
お前が間違っているという俺の指摘に何ーつ反論していない。
このまま間違いを認めるのかねw >>203
> 頓珍漢でもお前は間違ってると言ってるだろ。
お前は何を言ってるんだよ、>>112が頓珍漢なら俺が正しいことになるんだが…
マジでバカすぎる w >>204
ならないんだが。
何度も言ってるのに無視かよ。
よっぽど頭が悪いんだな。
>>112はオートフィルタのみについて1行と言っている可能性がある以上、配列に読み込む部分を含めて1行と決めつけて解釈したお前は間違い。
それは頓珍漢なこととは別の問題だ。 物事をきちんと分けて考えられないのもこのバカの特徴だな。 >>205-206
> >>112はオートフィルタのみについて1行と言っている可能性がある
だからそれが頓珍漢だって言ってるのに…
人の話を無視して論破されてる話を何度も繰り返すのは低能にありがちな行動だけどな w
> 物事をきちんと分けて考えられないのもこのバカの特徴だな。
ブーメラン乙 2018/12/17(月) 03:10:52.43 ID:Lv/9aVPQ
夜中の3時とかよほど悔しかったみたいよ w 頓珍漢でもお前は間違ってるんだよ。
全く反論になってないと言ってるだろうに。
>>112が頓珍漢では無い場合
→お前は間違ってる
>>112が頓珍漢な場合
→お前は間違ってる
お前の発言「だから>>112は頓珍漢なんだよ」
つまり、お前は間違ってる
日本語ワカリマスカ? >>209
冷静に見ればよっぽど悔しく見えるのは両方だ。
劣勢だからって同意を求めようとするな。 >>210
> >>112が頓珍漢な場合
> →お前は間違ってる
一体どういう思考回路なんだろ?
ガイジを装ってウヤムヤにしようと思ってるのかな?
そんなことしなくても既にガイジ並の思考能力しかないことはバレてますよ w
>>211
ごめんな、流石に俺は夜中の3時にレスするほど悔しくはないんだよ… w >>207
俺が物事をきちんと分けて考えられないというなら、何を分けて考えられなかったかを示す必要がある。
俺はお前が何を分けて考えられていなかったか示してるぞ。
適当にブ―メランなどと言っても根拠0じゃ何の説得力も無い。 >>213
バーカ
頓珍漢だとしてもお前は2通りの解釈が出来なかっただろうが。
オートフィルタのみ1行(の可能性がある)なのにお前は要件全てだと勘違いして決めつけた。 >>213
プッ。
この期に及んで悔しくないなどと言っても笑われるだけだぞ。
誰もそんな話信用しないわ。 >>214-215
もうアホには何度言っても無駄なんだろうな w
2通りの解釈どころかその後に付け加えるなら何でもありあり
付け加えないなら>>111の要件を満たさない頓珍漢なレス
で、世間では普通は書いてもない事を付け加えて解釈なんてしない
(まあ一時話題になった忖度とかはあるけどな)
要するに>>112単体では頓珍漢なレスで確定なんだよ
オートフィルターが1行とか言われても、はあ?それがどうしたって話になるだけ
>>216
うんうん、君が夜中の3時にレスしてると言う「事実」があるだけだね w >>217
頓珍漢でもお前は間違ってると何度言っても、頓珍漢で押し通そうとするのが笑える。
>>112単体で2通りの解釈が出来ると言っても後付けすればなどと見当違いなことを言う。
この期に及んでも何ーつ反論していないバカ。 >>218
> 頓珍漢でもお前は間違ってる
根拠も示せずに何度もほざかれても困るし
> >>112単体で2通りの解釈が出来る
解釈書いてみ
まさかこの期に及んでオートフィルターガーとか言うのはやめれくれよ
> この期に及んでも何ーつ反論していないバカ。
またブーメランかよ…
好きだねー w >>219
何度も書いてる。
1行はオ―トフィルタを掛けるコードが1行と解釈できる。
何度書いても理解出来ないバカ。
日本語に弱いから仕方ないのかねえ。
ハンバーグステーキを作ろうとしてる奴に「付け合わせのマッシュポテトはじゃかりこにお湯を注げば。
1分でできるぞ。」
と言った時、こいつの脳内ではハンバーグステーキが1分でできることになってしまうのだ。 >>221
> 1行はオ―トフィルタを掛けるコードが1行と解釈できる。
それがなんの意味もない頓珍漢なレスだ
って何度も書かれてるのに w
> 何度書いても理解出来ないバカ。
> 日本語に弱いから仕方ないのかねえ。
お前がな
> ハンバーグステーキを作ろうとしてる奴に「付け合わせのマッシュポテトはじゃかりこにお湯を注げば。
> 1分でできるぞ。」
> と言った時、こいつの脳内ではハンバーグステーキが1分でできることになってしまうのだ。
意味不明な例え乙
これぞ頓珍漢だな w バカは何度でもループする。
「頓珍漢でもお前は間違い。」に対しての反論が「頓珍漢だ」じゃ反論にならない。
救いようがない程のバカw >>222
そりゃ日本語が理解出来ないんだから意味不明だろうなw >>223
> バカは何度でもループする。
自覚はあるんだ w
>> 頓珍漢でもお前は間違ってる
> 根拠も示せずに何度もほざかれても困るし
は、ガン無視だし
どう反論しろと… ハンバーグ作ろうとしてる奴にドヤ顔でマッシュポテトの作り方語るバカがなにかほざいてるな w 木枯しを吹き飛ばす熱い闘いが続いております
5ちゃんねら〜の意地と意地とのぶつかりあい
書くのをやめたレスバトラーに待ちうけるのは「敗北」という恥辱にまみれた二文字のみ
「止められないレスがそこにある!」
それでは引き続きおたのしみ下さい
バカ vs バカ
ファイッ!!!!!!!! >>225
2通りに解釈できるものをお前は理解出来なかったのが根拠と何度も書いているが。
>>112とお前の両方が頓珍漢ということは普通にあり得る。
したがって>>112が頓珍漢だというお前の主張はお前が頓珍漢であることの反論にはならない。 >>226
マッシュポテトはハンバーグの付け合わせだから元々作ることになっている。
ハンバーグの部分であるマッシュポテトの時短への言及であり、1分とはその部分にかかる時間である可能性がある。
全体にかかる時間ではないかもしれないと考えるのがまともな日本人だ。
お前は日本人じゃ無さそうだから理解出来んかもしれんが。 ハンバーグの付け合せにマッシュポテトしか思いつかないとかどんだけ発想が貧しいんだよ w
知識も知能もスッカスカやん >>231
話をすり替えようとしても無駄だねえ。
単なる例に何言ってんの? 二人のやりとりでここまで日を跨いで続くのってあまり見ない気がするけど、やっぱりム板住人気質ってことなんだろうな。
頭はあまり良くないのにその自覚が乏しく、細かいことに異常に拘る。自分も少なからずそういう傾向があるから、気をつけないとな……。 今日も元気やな〜。俺は風引いて寝込んでるからそのパワーが羨ましいよ w >>235
また新たに日本語を理解出来ない事象が発生かよ。
発想が貧しいなどと今までの話とは関係ない方向へ持ってこうとしたことに対して単なる例と言ったのであって、例としては全くもって的確だ。 >>237
まだやるの?
> 決めつけたのは間違いなんだが。
とか言う奴が
> マッシュポテトはハンバーグの付け合わせだから元々作ることになっている。
とかどの口で言ってるんだよ w
配列への格納とオートフィルターが常に関係するわけじゃないのと同じでハンバーグとマッシュポテトは常に関係するわけじゃない
それぐらいは理解できるよね?
なお反論したいなら
> マッシュポテトはハンバーグの付け合わせだから元々作ることになっている。
が正しいと言う根拠持ってきてからにしてくれ > まだやるの?
たぶんこのスレ皆が君ら2人に対して同じことを思ってるよ。
これだけ思う存分、頭の悪さを見せ付けることができたんだからもう満足だろ? まだ足りないの? すみません、先輩方教えて下さいIF 文がうまくいかず困っています。
For分のループの中で
IF文の条件が一致したら 処理A、処理B、と20個くらい連続で複数実行したいのですが。
条件が一致しなくても処理Bからが動いてしまいます。
どのように記述すればよいのでしょうか。
EXCELの勉強サイトで質問をしても、条件1個くらいしか実施しないものしかなく困っております。 For ...
If 条件 Then
処理A
処理B
...
End If
Next
ってことか?
Select Case かElseIf使えって話か? Ruby なら、a が1 の時は、処理1・2、
aが2 の時は、処理A・B、
上記以外は、処理X・Y
if a == 1
処理1
処理2
elsif a == 2
処理A
処理B
else
処理X
処理Y
end >>244
まず今のコード晒せよ
みんなエスパーじゃないんだから >>245さん
そのような処理が行いたいです。
>>246
cではそのような処理は可能でした。
ruby ではない、rubyが動く環境ではないので if文のthen で
処理複数行実行できますか?というだけのつもりでしたが。
コード準備してまた質問します。
ありがとうございました。 >>240
???
例だと言ってるのにw
例を挙げたのは俺だから決めつけも糞もない。
日本語の問題なのか悔しくて冷静な判断もできないのか分からんが相変わらず頓珍漢な所に絡んでくるねw
ハンバーグを作るという要件に対して>>112はマッシュポテトを元々作るということになっていると思った。
それでじゃかりこにお湯を注げば1分という発言になった。
それをお前は頓珍漢と断ずるには、その発言の内容を理解しなければならない。
内容が全く分からなかったら頓珍漢かどうかも分からないからな。
そのお前の理解(ハンバーグが1分でできると解釈)が頓珍漢なんだろうが。
従って>>112が頓珍漢かどうかに関係なくお前が頓珍漢なのが確定なんだよ。 >>250
ThenからEnd Ifまでは処理をいくつ書いてもすべて実行される
If 条件 Then
処理1
処理2
処理3
End If >>251
> ハンバーグを作るという要件に対して>>112はマッシュポテトを元々作るということになっていると思った。
何度書いても頓珍漢なものは頓珍漢なままだよ
> なお反論したいなら
>> マッシュポテトはハンバーグの付け合わせだから元々作ることになっている。
> が正しいと言う根拠持ってきてからにしてくれ
に答えられないなら黙ってた方がいいぞ w >配列への格納とオートフィルターが常に関係するわけじゃないのと同じでハンバーグとマッシュポテトは常に関係するわけじゃない
それぐらいは理解できるよね?
常に関係しなくても全くかまわないんだよ。
普通の人間は相手が何かを言った時、それはどういう意味か理解しようとする。
理解しないと頓珍漢かどうかも分からないから当然のことだ。
常に関係するわけじゃなくても、>>112の頭の中ではハンバーグの付け合わせにマッシュポテトを考えたのだろうくらいは想像する。
そういう想像も全くせずに頓珍漢だというなら1分に言及することなく最初から頓珍漢だと言うだろう。
そこでお前はお前の理解の元に「じゃがりこにお湯を注いだくらいでハンバーグが1分で出来るの?」と発言したのと同じ状態になっている。
俺はそのお前の理解の元がおかしいのではないかと言っている >>253
頓珍漢であってもお前は「じゃがりこにお湯を注いだくらいでハンバーグが1分で出来るの?」と発言した状態になっている。
この発言が正しいのか? なんでプログラム板住民は機械言語じゃなくて自然言語の言葉尻を捉えて追求したがるの? >>254
> 普通の人間は相手が何かを言った時、それはどういう意味か理解しようとする。
だから>>113で
> フィルタ掛けた結果を一気に配列に読み込むってできたっけ?
って確認してる
それに対して>>117みたいな頓珍漢なレスが来たんだが w
>>255はマジで意味不明だから無視するね >>257
相変わらずのバカっぷり。
お前の>>118で「(要件を満たすのに)VBAで1行で書けるぞ
って方法があるみたいなことを書いてるので聞いただけ」という発言に対して俺は「>>112の発言の1行とは(オートフィルタを掛けるのに)VBAで1行で書けるぞ」という意味なのでは?聞いたんだが。 >>258
> (オートフィルタを掛けるのに)VBAで1行で書けるぞ
だからその回答になんの意味があるんだよ?
って何度も書いてあるんだが
意味があるというならその意味を書いてみなよ 相変わらず何の臆面もてらいもなくRubyを持ち出すヴァカ w >>259
意味が有ろうが無かろうがお前の解釈が間違いだと言ってる。
意味が無かったらお前の間違いは無くなるのか?
無くならねえよ。 元々のやり取りは以下の通り。
>>112「VBAで1行で書けるぞ」
>>113(お前)「フィルタ掛けた結果を一気に配列に読み込むってできたっけ?」
>>119(俺)「1行とはフィルタ掛ける部分のことを言ってるんじゃない?」
>>118(お前)「要件とは違うフィルタだけのことを言われても」
>>123(俺)「そうだけど、>>112で言ってる1行はフィルタだけと受け取る方が自然」
>>124(お前)「ガイジなのかな?」
どっちがガイジだよ vbaでcsv出力するとしたら色々やり方あるけど何が良いんだろう
fso? >>261
> 意味が有ろうが無かろうがお前の解釈が間違いだと言ってる。
> 意味が無かったらお前の間違いは無くなるのか?
> 無くならねえよ。
根拠出さないと何度繰り返してもそれこそ「意味ないぞ」w
>>262
誰も自然かどうかなんて聞いてないからな
ガイジかもしれないと思うのは当たり前のこと >>262
くだらない言い争いの元ってこれなのか?
:で区切れば1行で書けるだろ。
お前ら馬鹿か? >>250
Thenのあとに続けて同じ行に命令書いてないか?
Thenで改行したら、End If(かElse)まで条件判定で実行されるぞ >>264
根拠は何度も出している。
日本語が不自由なお前が理解出来て無いだけ。
そりゃお前は自然かどうかは聞いてないさ。
お前が聞いたこと以外を言うとガイジになるなら皆がガイジはお前と言うだろう。 シートは回転できないでしょうか?
マリオカートの地面みたいな感じで。 >>268
> 根拠は何度も出している。
> 日本語が不自由なお前が理解出来て無いだけ。
ん?
2通りの解釈ガーってやつのこと?
どう解釈しても頓珍漢なことに変わりないと何度も書いてるし、そもそもその2通りの解釈すら具体的に提示されてない
> そりゃお前は自然かどうかは聞いてないさ。
> お前が聞いたこと以外を言うとガイジになるなら皆がガイジはお前と言うだろう。
会話の中でいきなり聞いてもないことを喋りだす?
お前がコミュ障であることはわかったよ w >>274
どうしょうも無いバカ。
頓珍漢でもお前は間違いと言ってるだろ。
その根拠も既に何度も書いてる。
2通りの解釈も何度も書いてる。
オ―トフィルタを掛ける処理のみを1行と解釈するのと要件全てを満たす処理に1行と解釈するのの2通りだ。
日本語か通じないバカ。
>>119、>>123、>>146、>>148、>>156、>>180、 >>189、>>205、>>215、>>221、>>258で提示してるわ。
アンカー多すぎて怒られる程提示してる。 >>274
会話のやり取りとして関係有るなら聞かれたこと以外を話すのは全くおかしくない。
少なくとも>>118と>>123のやり取りをおかしいというならガイジはお前だろう。 >>275-277
> オ―トフィルタを掛ける処理のみを1行と解釈
要件を満たさない頓珍漢な回答
> 要件全てを満たす処理に1行と解釈
それかと確認したらより頓珍漢な>>117がしゃしゃり出てきた w
いずれにせよ質問者の要件満たしてないクズ解釈
> 日本語か通じないバカ。
お・ま・え だよ
> 会話のやり取りとして関係有るなら聞かれたこと以外を話すのは全くおかしくない。
お前はあえて無視してるみたいだけど>>113で関係性を問うてるからその解釈は無理がある まだ分かってないのかよ。
お前が>>112が頓珍漢かどうかを判定するところでお前はもう間違っている。
ということはお前は>>112が頓珍漢かどうかも判定出来ていないということだ。
だから結果的に>>112が頓珍漢だったとしてもお前も頓珍漢なんだよ。
お前は間違った判断の元に>>112を頓珍漢と言ってる。
>普通に一気に配列に読み込んで空白行を詰める処理を入れればいいかと
に対して「空白行を詰める処理を入れれば」の文言を理解出来ずに、配列に空白行が残るなとどしてお前の案を頓珍漢と断じることに問題は無いのか?
文言を理解出来ない方が頓珍漢だろう。
これと同じでお前の>>112を頓珍漢だとする根拠が間違ってる。 https://youtu.be/HjJjqSjTJwY
この人の頭いい自慢、笑いがとまらない(ワラ
自画自賛のみの動画。
自分が恥ずかしくならないのか?
たぶん恥ずかしい動画と気づいたらすぐ消すだろうが今はそれに気づいていない。
とにかく笑えます。 >>279
> お前が>>112が頓珍漢かどうかを判定するところでお前はもう間違っている。
根拠のない妄想乙
> ということはお前は>>112が頓珍漢かどうかも判定出来ていないということだ。
妄想に基づく頓珍漢な解釈乙
> だから結果的に>>112が頓珍漢だったとしてもお前も頓珍漢なんだよ。
もう論理も何もない幼児が喚いてるレベル
> お前は間違った判断の元に>>112を頓珍漢と言ってる。
それ、お・ま・え
> に対して「空白行を詰める処理を入れれば」の文言を理解出来ずに、配列に空白行が残るなとどしてお前の案を頓珍漢と断じることに問題は無いのか?
バカなの?
書いてあって理解できないことと、書いてもないことは全然違う話
そんな理解力もないから
> これと同じでお前の>>112を頓珍漢だとする根拠が間違ってる。
なんて頓珍漢な結論で玉砕するんだよ w >>281
根拠は既に何度も書いているのに理解出来ないバカ。
反論出来ないからもうそれでやり過ごそうとする意図がミエミエ。
もうお前の根拠無いは通じない。
根拠はあると言ってるし、場所も言っている。
その根拠がおかしいというならわかるが無いじゃ話にならん。
ところで全く笑わせてくれるが、お前の発言こそ全部ブーメランだ。
>それ、お・ま・え
プッ。
俺は>>112を頓珍漢だなんて断じて無いんだが。
日本語ワカリマスカ?
全然違う話ではない。
間違った判断の元に相手を断じれば、結果的に頓珍漢でも頓珍漢でなくても間違いだ。
書いてある、書いてないは関係ない。
この例は、お前の主張通りだと断じる側が頓珍漢で間違った判断をすれば断じられる側が頓珍漢になってしまうのか?という例だ。
2通りの解釈ができなかったお前が>>112を頓珍漢と断じてもダメということだ。 >>112からなら10日間かな。
>>112は(このレスを含まないで)コメント数44件になっているw >>282
> 2通りの解釈ができなかったお前が
まだ言ってるの?
お前はわざと無視してるけどそんな可能性は>>113で確認してる
>>112が回答すれば良かったものをガイジの>>117がしゃしゃり出てきて頓珍漢なレスしただけだろ w >>284
このスレをこれで埋め尽くすまでじゃね? w >>288
もう相当飽きとるでおまえみたいなバカがおもろいんは一時的なもんやし VBAエンジニアって宣言するのって恥ずかしいことなのかな?
ツイッターのWEB屋達からは苦笑されるし、現場でもVBAは簡単的な扱いで
あまりいい意味で捉えられないように感じる
経歴的にVBA触ってた時間が長いし、
Windows と相性良いし、
VBAなんで叩かれてるんだろう? webパーはバカやからおいとくとしても
VBAエンジニアとゆうてもうたら言語としてのVBAをメンテナンスしとるエンジニアと思われるやろ
そこはただのエンジニアでええねん開発言語として主にVBAつことるゆうだけで
てかVBA叩いとるのこのスレにおるプロさんゆうバカな連中だけやぞw ロックマン作れるレベルなら、バカにされないんじゃないの? >>290
恥ずかしいんじゃなくて、根本的に間違ってるんだよ
アプリの開発にはVBAは適してないし、普通は使わない
ちょっとでも複雑なことをしようとするとAPIが必須になるし、ツールも貧弱で開発の効率が悪いから
そして、ワークシートに付属のマクロを書くだけの人はエンジニアと呼べるレベルにないことが多い
まあVBAで作られた社内アプリもあちこちで見た事あるけど、とにかく結果さえ出ればいいって感じでひどいもんだった
体裁の整ったアプリも作れないことはないけど、それこそVBAでは無駄に手間がかかるだけで、ようするに言語(道具)の選び方が適切じゃない >>292
趣味ならいいけど一般的に商品はVBAで作るわけにいかない
同じ物がVB.netならもっと少ない手間で作れるんだから、開発コストの無駄遣いになる 「趣味でシステムエンジニアやってます」というのは成立しないと思うのは俺だけか?
趣味の一つとして認知されてるんなら、ここまで俺が書いたことは完全にひっくり返ってしまう 別に国家資格が必要なわけじゃないから「俺は(VBA)エンジニアだ」と名乗るのは自由
聞いた人がどう思うか、どう思われるかはわからない >>290
VBAは、あくまでOffice付属のマクロ言語なので、そこに何十年(最大24年)もしがみついてるとかだと、
自己紹介でそうと言われたら、叩くまではないにしても、「はぁ」で流しはするかも知れない。
他の色々出来る中で、「VBAも触れます」なら、構えられることもないんじゃないかな。 情報処理資格を受かった学生が「こんなの誰でも受かりますよ」って言うけど、
10年以上受からない奴は「いや、そんな簡単じゃないよ」って答える
会社では、新人・老害の会話が噛み合わないw
そういう老害が新人に教えるから、矛盾だらけw
勉強していない奴は、システムを組めない。
何も知らんからw
データ処理に適さない、表示情報が入った、Excel, PDF を成仏させる供養寺を、
住職(エンジニア)が開催してるw 普通にプロとしてやってる人なら、言語仕様とライブラリ構成さえわかれば、どんな言語でも一定の結果は出せるもんだ
VBAだって言語の一つとして、文法や演算子、変数タイプ、組み込み関数なんかが把握できればプログラムは書けて当たり前なんだよ >>287
バ−カw
お前が確認したのはお前の1通りの解釈を元に一気に配列に読み込めるかどうかだけだ。
本来、以下のようにすべきところを
Function Check112(strHatsugen As String) As String
If strHatsugen="要件全てを1行" Then
Check112="頓珍漢"
Else If strHatsugen="オ−トフィルタのみ1行" Then
Check112="頓珍漢"
End If
End Function
お前のコードは以下の通りだ。
Function Check112(strHatsugen As String) As String
If strHatsugen="要件全てを1行" Then
Check112="頓珍漢"
End If
End Function
お前のコードではstrHatugen="オートフィルタのみ1行"の場合、戻り値は"頓珍漢"とならない。 空白を取り除いて配列に入れるのって、結局どうやるのが一番シンプル?
マルチステートメントはとりあえず無しとして、作業シートを使って3行までは短縮できたけど
(セル範囲が決め打ちだからできたとは言えないかな
Sheets("Sheet1").Range("A:C").AutoFilter Field:=1, Criteria1:="<>"
Range("A1:C5").Copy Destination:=Sheets("Sheet2").Range("A1")
ary1 = Sheets("Sheet2").Range("A1:C3") >>290
他の言語と比べて微妙だから
vbaでも出来るけど他の言語ならもっと楽 なんで使わないの言語使えないの?て思考する人が一定数いるから >>302
普段から寝るのはあんなもんだ。
>>301
実際のところ、俺も「普通に一気に配列に読み込んで空白行を詰める処理を入れればいいかと」だね。
でも、データ総数300とかじゃどんなやり方でも良いし、気にしない。
効率を気にするなどと言っていても、実際は他で大きなロスしてても気にしない奴多数。
動かした所で大きなロスをしてる所がデータ読み込み部分と分かってから考えれば良い。
俺は一気に配列に読み込むのに慣れてるし、それで早いからそうするのが普通なだけで。
そもそもこういう場合でよくよくやりたいことの詳細を聞くと配列に取り込む必要が無かったりする場合も多い。 >>301
あと、コードの量を減らすのはあまり意味が無い。
速度のためにコードの量はかなり増えることがある。 listviewでマルチセレクトから通常にもどすさいに再描画してるんですが、そのさい行がずれるんですが listboxのtopindexみたいなものはないのでしょうか? どうすればずれないようにできますか? チェックボックス有効無効をきりかえるため再描画してます。その際行がずれます。 すみませんでした。 Excel VBAにlistviewなんてあったか? それはVBAじゃないし
何を参照設定したかちゃんと書けよ 参照設定もVBAの機能の一つだろ
デフォルトでもいくつか入ってるし、ファイル操作する時はFSOを追加するし、Outlookの操作も定番のテクニックだし ListViewはライセンス的に微妙なんだよな。
配る場合はダメだった気がする。
恐ろしく面倒な方法で実装すればライセンス的にも問題無いけどそこまでやれる人は殆どいないと思う。 あとツールボックス右クリックでその他のコントロールを参照設定とは呼びたくないな。 >>325
設置すると勝手に参照設定されますから、同じことです お前が呼びたいとか呼びたくないとか、お前の気分なんぞ知ったことではない いまのExcel VBAに標準でListViewあるのか? 標準の意味とは
VBA可の環境ならコントロールの追加は誰でもできるが シートのコピーでafter:=worksheets.countしても最後尾に追加されないことがあるんだけど何これ
通常なら問題無い 非表示シートだか同名シートだかが混ざると不穏な動きする >>332
思い込みで書いててて仕様を正確に理解してない
コード晒してみ >>332
afterに入れるのはシートオブジェクトやで? Worksheets.Countだけ指定して最後尾にシート追加することもできるんだな。初めて知ったわ。 >>333
解決してるけど状況だけ説明
Thisworkbook.Worksheets("雛形").Copy After:=Thisworkbook.Worksheets(Worksheets.Count)
普通に実行出来て追加される けど末尾に追加されない
雛形シートは非表示で他にブック開いてないのが前提
原因は他の非表示シートが末尾にあったから?ぽい見えるシートの末尾に追加されてた
原因があってるのかは不明だけどコピーの前に全シート表示させる処理書いたら想定どおりに末尾に追加されたから解決としてそれ以上調べてない >>337
これで解決は酷いなあ。
このコードじゃダメだろ。
初心者が一番ハマるのに引っ掛かってる。
Worksheets.Countはどのブックのシート数を示してるの?
人間の思い込みと現実が違うことはよくある。
ブックが複数開いてたらThisworkbookがActiveとは限らない。
まあ、これが原因かどうかは分からんけど。 コピーしたシートも非表示に設定されてるからじゃね? すみません、一般論として教えてください
一つのプロージャ内に複数のForNext文を使う場合
カウンタ変数はそれぞれ用意したほうがいいんでしょうか?
それとも全部「i」とかで固定したほうがいいんでしょうか? 単純にカウンタとしてしか意味が無くて充分に短いループなら全部iでいいよ >>341
ありがとう
これまで全部「i」で統一してて他で使いたいときは違う変数に明け渡したり…ってしてたんだけど
この前業者の人が書いたコードを見たらそれぞれに変数を与えてたので…
デバッグの時に有利?とか何かプログラム業界の常識みたいなのがあるのかな?と気になって >>342
他で使いたいときに明け渡すなら最初からそれぞれ違う名前にした方がいいんじゃね >>343
ここ質問スレだからそういう幼稚な発言はやめようね。
色んなレベルの人がいるから。 >>340
そもそもプロは1つのメソッドに複数のループを書かない >>340
「プロシージャ」な
procedure >>342
ループがネストする場合にi,j,kとしたりするのは
FORTRAN由来でコンピュータ黎明期からある
https://qiita.com/yaju/items/38f63900491d4ac51af7
座標だとx,yとかで回したりもするがあまり長い名前は使わない方が良いかと i,j,kは慣習だけど、それ以外はループ変数といえど意味のある変数名を使うほうがいいぞ
長い名前使うなとか、インタプリタ時代の悪習でしかない
いかにわかりやすい変数名つけるかはセンスもあるけどな 俺は行ならrow、列ならcolumn、インデックスならindexとかにして
なるべくi, j, kとか使わないわ、別にこだわりはないけど 俺は一文字だけじゃ見失うから
iii jjj kkk ccc rrrって3文字連打してる
別の変数名への置換もしやすいしね みなさんどうもありがとう
自分はプログラム屋ではないので業界の常識?みたいなものがあれば知りたくて
今までは使うなら「i」、構造的にかぶるなら「j」あたりを使ってましたが
その都度意味のある変数を使う方が多いんでしょうか
その他の変数も基本一文字が多いんですけどこれもあまり誉められたことでは無いのかな 俺は row col idx i i2 i3 をよく使う シート上の特定Rangeを表してるときならrowとcolumnもありだけど、一般にはiとjかな
それ自体が検索対象になることもまずないし ローカルのカウンタ変数をiで使いまわしてるけどi2とか分けたほうが良いの?
好み? >>357
誤読の可能性があるなら、分けた方がいいと思う。
>>349,350あたりが妥当じゃないかな。ただ、例えば行そのものでは
なく行を導出するための数値を入れる変数には、rowじゃなくてrowナントカ
だのにした方がいいのかな。単なるループカウンタならヘタに意味のある
名前を付けない方が「無意味なカウンタ変数です」ということを示すことが
できる気も。自分はループカウンタはとりあえず一文字二文字の変数を
放り込んでそのまま、ということが多い(簡単な処理しか書いたことない)。 個人目的ならそれこそ自由、自分が解りやすければなんでもいい
社内使用で他の人が今後も手を加える可能性があるなら
可読性と一般的な用途を考えてijk辺りがよいと思う カウンタ変数の1つや2つぐらいケチらず定義しろよ
それこそ先頭で
Dim i1 As Integer , i2 As integer,,, とかやっとけばいいだろ。
こう書くとIntegerよりLongだとか言い出すやつも出てくるけど w >>359
3ヶ月後の自分は他人
>>360
おれならそう書いてあったら、i1とi2になにかしら特別な意図があるのかと思う
それならちゃんと分かりやすい変数名をつけるべき integer使う意味が分からんぞ
ループカウンタに限らず 個人プログラムのときは Jは大文字にしてる
ijだとぱっと見差がないから
それから、行と列はc、r変数にしてる i,j,kきらい
indexとかcountとかすき
rowIndexとかcolumnCountとかもっとすき 何が書いてあるのか、未来の自分がわかり、他人もわかるのが理想
昔ながらのルール(慣習)は理由なく破るべきではない i j kは使い捨てのループカウンターとして世界中に広く認知されてるし入力のコストも低い
いちいち For TemporaryLoopCounter = 1 To 5 とか書きたい人は自由にすればいいけど、それこそ自己満足の世界だと思う 長く使うプログラムほど扱う対象が汎用的で、変数が具体的に何を指すとか
限定できないため i, j, k になりがち。
逆に具体的対象を扱うプログラムだと変数名も具体的にした方が良いだろうが
汎用的に長く使うものではない。
何が言いたいかというと別に何でもありません。 かなり乱暴だが
> 変数名の長さはスコープの広さに比例させるべし >>376に同意
一般論でいうと、メンテナンス性に優れたプログラムを書くには次の点を意識するとよい
・変数の生存範囲はできるだけ狭く
・変数の生存期間はできるだけ短く
で、これを意識したプログラムの変数名は自然に短くなる
極論すれば、サブルーチンが適切に分割されていてサブルーチン名だけで何やってるか明らかなら、
その中の一時変数名なんか全部一文字でもいい そもそもループ回すのにループカウンタ使うのが時代遅れ
for each使え 時代遅れとか言い出したらVBA自体が使えなくなる
ナンセンス For Each とループカウンタ使うのとどちらも一長一短あるのを知らない人は早く初心者を脱出してね。 一長一短ていうか For Each はワンパターンな使い方しか出来ないからドヤ顔するようなもんじゃないな >>378
配列Aと配列Bの要素同士を足して配列Cに入れる
って言うのを
For a, b, c in A, B, C
c = a + b
Next
みたいに書けるならいいんだけどなぁ >>382
・そういう構文がない
・c に代入することが実はできない
の二つの意味でダメなんだよね >>383
それ自由度が低い
For a, b, c in A, B, C
If b <> 0 Then c = a / b Else c = 0
Next
みたいなことを書きたくなるとかありそうだし >>376
しかしvbaにはプロシジャより狭いスコープがないんだよ >>387
だから何?
最近のモダンな言語と比べてもブロックスコープが無いくらいじゃないの? >>387
まともなプログラマならブロックスコープが欲しくなるような大きなプロシージャは書きません 実際使い捨てならそれで問題になる事はないんだが
使い捨てのループ変数がループ内でスコープが閉じないのがなぁ
あと宣言位置の問題もあるけど わかる方がいれば教えてください
ユーザーフォームに配置したラベルに、選択中のセルの値を表示したいです
他のセルをアクティブにしたらラベルの内容も次々と変わるようなものを作りたいです
初心者なりに考えたのですが、
セルの選択をダブルクリックにしてシートモジュールの
Private Sub Worksheet_BeforeDoubleClick(〜)
みたいなものを使うパターン、
ユーザーフォーム側にアクティブセルの値を表示するためのボタンをつけるパターン、
それくらいしかラベルに表示する方法が思いつきません
思っていた上に書いたような動きのものが作れません
そもそもそんなものは不可能でしょうか
セルをアクティブにするだけでそんな動きをするものは作れたとしても重くて(?)実用的じゃないでしょうか ユーザーフォームが出ている時だけワークシートイベントを発生させることってできますか? >>391
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UserForm1.Label1.Caption = ActiveCell.Value
End Sub >>392
発想が根本的に間違っている
イベントは自然に発生するものであり、それを制御しようなどと考えてはいけない
ユーザーフォームが出ていないときはイベントを無視すればよい 自分もVBA初心者だけど書いてみます
>>392
既に言われてるけど、
イベントの発生は操作できないから受け取り側でフォームが読み込まれてるか調べて、
実行するか選択する形になる
思いつく方法は、
・フォームが一つしかないなら、UserFormsコレクション(読み込まれたフォームの一覧)の要素数が1以上かを調べる
・UserFormsコレクションに該当のフォーム名(typename関数で取得できる)があるか調べる
・印になるパブリック変数を宣言し、フォームのInitializeイベント(読み込まれた時に発生するイベント)で適当な値を代入させ、その値を調べる。
もしくはWithEvents(これを付けて宣言した変数のイベントを受け取れる)でシートのイベントを受け取るクラスモジュールを用意して、
それにフォームのラベルを操作させる方法もある
余程シートに依存した目的でない限り、個人的にはこちらの方が自然だと思う Excel2010の人は1月3日版のアプデを入れないように
【Win】 WindowsUpdateで入れなくても良いKBリスト。2018年12月12日まで分
http://blog.livedoor.jp/nichepcgamer/archives/1039785182.html >>395さんが言ってることが全く分からないというか一度も触れた事がないので
これを機会に勉強してみます
謎のクラスモジュールを使ってみたいと思っていたので良かったです
みなさんありがとうございました >>397
ググれば出てくることなんだから、初心者でも答えれるやろ。
まあ人によっては初心者は卒業したって判断しそうなくらいのレベルはありそうだが。 >>398
UserFormで直接WithEvents付きの変数使えるぞ
いろいろチェックとかはぶくとこんな感じ
Private WithEvents ws As Worksheet
Private Sub UserForm_Initialize()
Set ws = ThisWorkbook.Worksheets(1)
End Sub
Private Sub ws_SelectionChange(ByVal Target As Range)
Me.Label1.Caption = Target.Value
End Sub >>397
プログラミング経験無いまま前任者から引き継いでしまったので、ここで色々教えて貰ってました
最近は調べ方も大体わかってきたので余り来ていませんでしたが、
アドバイス側に回ってもいいかなと思って書いてみました
>>398
分からないのはどの部分でしょうか
後半は>>401さんの通りです
>>401
ヘルプにクラスのみと書かれていたので、フォームでは使えないと思ってました・・・ 俺しか見ることないだろうから、
Dim chinko&, unko$ セルにindirectを入力しないでプルダウンを連動させる方法はありませんか?
名前”地区” 第一 第二 第三
名前”第一” 製造 塗装
名前”第二” プレス 溶接
名前”第三” 組立 検査
J列にプルダウン”地区”第一 第二 第三
K列が隣のJ列を参照してプルダウン(indirect)が変わるようにしたいのですが、
K列に=indirectを入力するとファイルサイズが大きくなるので避けたいのです。
何か良い方法はありませんか?
https://dotup.org/uploda/dotup.org1740935.zip.html
入力用のブックとupローダーに挙げた台帳ブックを分けた方がいいのは
確かなんですが、要求元は台帳で連動するプルダウンを使いたいとのことで
困っています。ご指導ご鞭撻のほどお願い申し上げます。 新元号対応の更新プログラムで早速バグ発生かよwww 新元号対応パッチは4月1日以降にしか出せないだろ
それに今はOffice単体じゃなくてWindows側の日付管理APIで一括対応する仕組みになってるし ただちに影響、出てるじゃん、何が立憲民主党だ、ホラ吹きの枝野!
2008年 12808万人 + 5万 △△△△△
2009年 12803万人 − 5万 ▼▼▼▼▼
2010年 12806万人 + 3万 △△△
2011年 12780万人 −26万 ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
2012年 12752万人 −28万 ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
2013年 12730万人 −22万 ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
2014年 12709万人 −21万 ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
http://lavender.5ch.net/test/read.cgi/asaloon/1546600138/l50
【モンサント、アマルガム】 厚労省、危険物を安心て、ふざけんな、国いらん。オノ・ヨーコ「来るな」
http://rosie.5ch.net/test/read.cgi/liveplus/1547000522/l50 「ぼくが政権にいる間は影響無いことにしておきます」(のんのん) VBAのフォームのツールボックスにコントロールを追加したいのですが、右クリックで「その他のコントロール」を追加してもコントロールの追加ダイアログが表示されず無反応のまま終わってしまいます。
WIN7(64) OFFICEは2010(32) 2013(32) 2016(32)を入れ替えましたが全て同じでした。
C:\Windows\System32 C:\Windows\SysWOW64 どちらにもFM20.DLLは入っています。
オフィスのクリーンアンインストールも試しました。ツールの参照設定で参照しなおしてもNGです。
OSに問題があるかもしれませんが、何かチェック事項はありますか?
よろしくお願いします。 >>417
追加前の標準フォームのコントロール群です。
フォームを挿入するとエクセルのツールのメニューの方で自動的に有効になります。
ActiveXとかツールボックスのコントロールとか関係あるでしょうか? プログラム初心者ですがVBA勉強するのに優しく解説してくれてるサイト教えてください >>415です
C:\Documents and Settings\ユーザ名\Application Data\Microsoft\Forms
の中を見たところEXCEL.boxのみでしたが、他何か入っていますか? >>418
自動的に有効になるならそのまま使えばいいじゃん >>421
有効になるのは「標準のコントロール」のみだけです。
使いたいのはWebBrowserコントロールなのですが、それはデフォで表示されていないので追加をする必要があります。
他のPCでは問題なく出来ていますが、1台だけ同じ手順で追加できないPCがあるので困っています。
http://image.itmedia.co.jp/ait/articles/1502/06/ExcelVBA9TipsForm_02.png
このイメージでいうとツールボックスに地球のアイコンがありますよね。これを追加するために
イメージ右半分のコントロールの追加のダイアログを出したいのですが出ないという意味です。 >>424
同じ手順でできるPCとできないPCがあるならPC個別の問題かな
うちの環境では MicrosoftWebBrowser なら ieframe.dll を使っているようだけど フォームが表示されている画面で 表示→ツールボックス
でツールボックスを表示してないと「その他コントロール」の項目が選択できないってやつかな? いやいや、これは何かが壊れているわけで、当然PC個別の問題だし、ツールボックスが表示されている状態でその他のコントロールを選択すると普通は表示される筈のダイアログが表示されないという問題。
ExcelじゃなくてWindowsに問題のある可能性もある。 返信ありがとうございます。
私もOS自体に問題があると思いますが出先のPCなので実際誰が何をしているのやらな状態です。
私はプログラマーではないので詳細はわからないのですが、ダイアログの参照先を調べてみた限りでは
ActiveXコントロールのDLLを色々なフォルダに参照にいっているようで、さすがにこれだけけのコントロールが壊れているとは考えにくいため
コントロールを表示するためのOSとの手続きの部分がおかしくなっている気がします(office側の要求にOSが応えない)
OSを初期化してしまえば良いと思うのですがもしそれで何かあった場合私では責任が取れないのでお手上げの状態です……トホホ
まずはiframe.dllの所在を調べてみます。上司は私より疎いのでなんとかならないの?の一点張りですが
もしどうしようもない場合もう一度言ってみたいと思います。(多分ここで解らなければお手上げだと思うので)
>>426 ツールボックスは表示できます(フォームをアクティブにして、メニューの表示で選択) あと一つだけ、参照設定画面でライブラリの優先順位が正常なPCと同じかどうか見たほうがいいかも >>428
多分、レジストリに登録されているActiveX情報を見に行っているだけで実際のdllは見に行っていないと思う。
dllを見に行くのはダイアログ上でチェックした時じゃないかな。
リストアップに問題があるとすればレジストリに問題があるとか。
でも単純にそのダイアログを表示するだけの所でこけている可能性もある。
WordとかAccessでも同じ状況なのかな?
他にOffice以外でActiveXのリストを表示できるアプリがあれば、そこでは問題無いかなど。 >>429
>>430
有用な情報ありがとうございます!
ここら辺も重点的に調べてみます!! オフィスを少し古いバージョンにロールバックさせてみれば?
2010とか2003にしろって言ってるわけではなくて
2016のパッチの適用状態を最新から4世代くらい前に戻してみてはどうかって言う話ね ・客とのデータ交換フォーマットのデファクトスタンダード
・文字列、表、図形を混合したセマンティックレスな文書作成ツールとして優秀
・インストール監査がかからない
この条件を満たすツールは今のところエクセルしかないのでエクセルは必要
でもVBAの存在意義には正直なところ懐疑的かな 割り当てたショートカットキーが競合した際の優先順位ってどうなっているのでしょう。
複数ブックでマクロオプションが競合した場合は、先勝ちのような気がします。
OnKeyはそれよりも強い?
自ブックに割り当てたショートカットを優先させる手段はありますか? >>440
えーと、同じキーアサインを持っているブック、A→Bの順に開いて、Bにフォーカスが当たっている状態で、Aのキー割付が反応しました。
先に読み込まれた方が居座るのかと、、
フォーカス順ってどういう状態? こんにちは>>415です。
更新の削除(ロールバック)も試してみたのですが改善しなくて結局もうお手上げ状態でした。
他のofficeアプリでも呼べなかったのでとりあえずドライブごとバックアップ取ってシステム入れ直すことにしました。
パスワードがないとか、アクティベーションができないとか、インストールしていたプログラムの原本がないとかどうなってんだよこの会社は程度には散々な目に合いました。
今どうにかこうにか復旧できて明日の業務には間に合いそうです。
ID・PWを統合管理する何かを作らないとダメかも・・・
もうしんどいのでおうち帰りますT−T
アドバイスくださったかたどうもありがとうございました。
なんかおいしいものたべたい…… 黴の生えた産廃に固執し先へ進む努力をしてこなかった人間と組織の末路 かわいそうに
くだらないトラブルで連休が潰れるなんてな
最初から.NETにしてたらゆっくり休めたかもなぁ 会社がシステム更新の費用をケチって社員に残業や休出を強いるのはブラック判定丸です じゃjavascriptってvbaと比べて難易度高い? >>448
重度になると、ExcelをCalcに入れ替えられます。 Calcのほうがマシでは?
機能面でも上だし無料でライセンスやインストールでのトラブルなどないからね >>451
VBA(というかVBシリーズ一般)ユーザーは他のものを覚えようとしないから未だにVBAユーザーなのだから、
VBAではないものは何であろうと極めて難しいよ 高い金を払ってるのだから問題をサポートに投げなきゃ損だよ
連休を使って自力解決するぐらいなら最初から無料・サポート無しのOSSツールを使うのが正解 Calc使ったこと無いだろ…
動作が安定しないしよくわからない独自仕様があるから困るわ
絶対パス使って別ファイルのデータを参照しにいったら、内部的に相対パスに変換されてるらしくて、
ファイルの位置を変えたらリンクを張り直さないと動かないとかだし エクセルだって
動作安定しない(ちょくちょく落ちる、ファイル壊れる、操作が失敗する)
へんな独自仕様の塊(そもそも表計算の標準仕様とは?)
ファイル移動したらリンク切れる(当たり前)
もしかしてなんか違うツールの話してる? calcってwindowsの電卓のことじゃなかったのか? プロのプログラマならショートカット使うから
Winキー + E + calc + ENTERキー
でいつも瞬時に電卓立ち上げてるからな
その間0.1秒 電卓で計算してExcelに入力するおじさん見たことある >>457
馬鹿は新しいものが良いものだと思ってるバージョンすぐ上げるからそうなる と思ってる人がセキュリティ事故や上の方でやらかしたようなトラブルにハマっっちゃうんだよな
何事も枯れてるほうがいいなんてのはとうの昔の話で、今は素早いアップデート(とテスト)が大切なんだよ ID:p535EsUF
本日の死んだ方がいい大馬鹿 でもVBAなんて未来ないじゃん
今から覚える意味ないのは間違いない ロジカルに意見できなくなって暴言を吐くしかできなくなった人ってたまに居るけどなんかかわいそう いい加減、マクロの実行だけはできるけどVBEは別途開発者ライセンスの購入が必要、くらいの弾圧はしていいと思う
さすがにいつまでも甘やかしすぎ ろくに組めない奴がマウント取りたがってる構図だな。
実際、俺の回りにいるできる奴はVBAを駄目だとか言う奴はいない。 >>474
実際、できる奴なら必ず他の選択肢を持っているからね
VBAに縛られていないから悪く言う必要もないだけであり、彼らが積極的にVBAを選択することはないよ >>475
まあ、できる奴はC#も使わんけどね。
C++使うわな。 >>476
無意味な拘りで3倍の工数をかける奴は「できる奴」とは言わない
ただの迷惑で無能なオタクだな C#やC++のスレでは自慢できないからここでマウントしたがる…というわけですね vbaのいいところってエクセル持ってれば無料で使えて大体のクライアントpcにエクセル入ってるって事なんだからあんまりあーでもないこーでもない言ってやるなよ エクセルのVBAってシート=変数の一覧みたいなものだし
素人にはやりやすいだからエクセルは好きですよ。
そんな感じでプロの人と棲み分けできていると思う。 Officeが入ってなくてもWindowsパソコンには必ず入ってるJavaScriptやC#の立場は JavaScriptっていますごく人気あるんじゃないの? 結局、出来ない奴ってのはオラが世界だけなんだよな。
C#なんて出来ないこといっぱいあるのに工数とかいって言い訳するんだよ。
なんであんな遅くて出来ないこといっぱいのクソ言語使うのかねえ。
なんて言われた時の反論がバカにしてるVBAと同レベルの反論をするんだよな。
まともな奴ならそういう都合が分かってるからマウントなんて取らないものなんだが。 >>483
あなたのいう出来る出来ないっていうのは何を指しているのかは解りませんが私にとっては何の価値も意味もないです。
それともあなたは自分が出来る奴っていう自慢をしたいんですか?
あなたが本当に凄いならあなたのいう下らないレベルの言語のスレではなく、もっと凄い人が沢山いるスレが相応しいと思います。 >>484
出来る奴ってのはどんな言語にもいるけど言語の優劣を語るような奴は出来ない奴の典型。
C#の方が...などと言う奴の言ってることってのは突き詰めると「プログラマーなんて底辺」なんてのと一緒なんだよ。
そんなことも分からないからマウント取ろうと頑張るんだね。
自分のバカさ加減を喧伝するようなもんだ。 アプデしたらExcelうごかんくなった
たすけてえろいひと >>487
できる奴ほど言語のメリットデメリットを正確に理解してるから優劣を語る
出来ない人はそもそも語るほどの知識がない >>493
メリット、デメリットを把握してたら優劣つかないんだが。
そうだな、このスレで何度となく言われてることだが、Excelのみで完結できるというメリットを挙げると、別ファイルが有っても大きな問題じゃないとかくだらない言い訳を始めるんだよ。
今まで、どんな場合でもVBAは駄目とか言ってたくせに。 どんな場合でもと言ってたのが破綻したわけだ。
それに、この点は全てに係る重要な点だ。
他にも沢山あっただろ。
でもこれ1つで「どんな場合でも」は破綻したな。 そもそも職場でexcelしか許可されてなくてほかのソフトが入れられない人にとって
ほかの言語がどれだけメリットがあっても使わせてもらえなければどうしようもないんじゃね
俺はVBA以外も多少知っているけどそっちの話は別のスレでやってる 本当に必要なら申請すれば入れさせてもらえるはずとか言ってもねぇ
VBAでは絶対無理ってわけでもなく、出来ないこともないので、
本当に必要かって言われるとそうではないことも多いからなぁ C#やPowershellも含めて使えないってことは滅多にないだろ
そういう特殊環境を前提に語るべきではない 仕事ではその特殊環境となる場合が結構あるんだが。
VBA禁止って所もある。
けどこのスレはVBAが前提なんでね。
C#やPowerShell禁止はデメリットになるけどVBA禁止はデメリットにならないという前提を理解出来ない奴は結構来るけど。 VBA禁止の本当の意味は、
馬鹿が作ったVBA禁止 IEをオブジェクトにしてフォームに入力、実行まではできます。
実行後、更新されたHTMLを取得するにはどうすればよいのでしょうか? >>498
わかるわ。うちもシンクライアントでガチガチにOS固められてるから必然的にVBAとJavascript覚えた。 >>503
VBAでやることではありません
RPAでも購入してください >>500
C#やPowershell のスレでやるべきである >>503
objIE.Document.Body.innerHTML で読めないの? >>500
ここはVBAのスレ。文字読めないヴァカ?
C#やPowershell自慢やりたいんならそのスレに逝けアホンダラ >>503
普通は、Ruby, Selenium WebDriver, Nokogiri で、スクレイピングするけど、
ピラフ大王は、5ch のスレを、PowerShell でスクレイピングしていた、強者! >>512
あ、俺Seleniumでスクレイピングしてるわ
IE面倒なんだもんw IEオブジェクトはHTMLコード内の改行も1つのノードとして扱ってる点が特殊だな。
MSXML2.XMLHTTPとかhtmlfileでやる場合はそんなこと無いけど。 スクレイピングをわざわざVBAでやろうという発想がどこから出てくるのか不思議だな
個人なら裁量があるのにあえてVBAを使う選択はありえないし、
会社だとするとスクレイピングをやろうと考える程度にリテラシーがありコンプライアンス意識が低く、
かつ他のツールを使えない程度には厳格なちゃんとした企業なのにRPAを買う金はない? >>515
どうしてって、うーん、ただPCにOFFICEが入ってたから使ってるw
javascriptもPerlとかも無料だし、大体どこでも使えるし何か買うほどやる気ないし……
あなたの思っていることは理にかなっていると思うよ、多分色々なことを知っててそれが出来れば視野も広がるって親切心なんだろう。
でも、なんつーか個人で使うだけだから脱線しててもやりたいことが短時間で出来ればいいっていう視点もまぁ理解して欲しい。困ったら聞くかもしんないけどお手柔らかに頼みますw
あとありがとう。 IEが消えりゃVBAでスクレイピングなんてのも消えるし
そう遠い未来じゃない >>499
俺もそんな理由でVBS使ってるわ。
本当は専用の開発ソフト欲しいけど、
やろうと思えばメモ帳だけで出来なくもない、ってのが曲者。 うーんどうやら開発ツールを申請できない/入れてもらえない会社が無視できないくらい存在する、
というのはデタラメじゃなかったんだな >>515
別にわざわざでは無いけどね。
一瞬で出来るんだわ。
それ用のツールを昔、作ったんでね。
>>519
それは仕事の規模によるだろ。
それに、こっちも入れる迄もないと思ってるから申請なぞせんぞ。
VBAだとどうにもならない仕事が継続的に続くなら申請するんだろうが。 まずOS標準のPowershellでできることをやる
規模が大きくなって型安全性などが欲しくなったら.net CLIとVSCodeを入れる
VBAは本当にVBAが必要で他に選択肢がない場合にしょうがなく使う なんでExcel標準のVBAを使わないのかねw
バカじゃないの? VBAは公式には「レガシー」で「非推奨」な機能だよ うちは無料ならツール申請すれば通常通るし、理由もそんなに掘り下げて詮索されることはない。
有料だととたんにハードルが上がるけど。
んでVisual Studioやらなんやら入れた後もVBAはがんがん使ってるな。
C++/C#と比較してもアドバンテージはあると思うよ。
ちなみにPowershellは起動できないようになってる。権限の問題だから単なるインストール申請よりハードル上がるとおもう。 >>526
C# を禁止せずに PowerShell 禁止とか意味わからん
まあよくわかってない情シスとかが決めてたりするんだろうな >>527
そりゃ情シスなんかちょっとだけ意識高いPCユーザーに過ぎないんだから、その辺の層の人にとってexeは怖いでしょ
PowerShellなんか所詮テキストファイルだから安心 PowerShellはデフォルトで実行出来ないでしょ。
で、実行できるようにして良いかが問題となる。 うちは共有pcだと社員の個人情報とか社外秘のデータも扱っているから
情報漏洩やコンプライアンスはうるさいんだよね
そういうの適当な会社がうらやましいよ >>528
???
禁止してるのはテキストファイル(PowerShell)の方だよ? >>529
> PowerShellはデフォルトで実行出来ないでしょ。
できるよ
powershell -ExecutionPolicy RemoteSigned xxxx.ps1
ってやるだけ PowerShellデフォルトでスクリプト実行できないのは致命的。
「え?デフォルトからセキュリティ弛めるの?大丈夫なの?」ってなる。 >>532
それをどこでやるの?
当然ダブルクリック1発でできるんだよね。
もしかしてそのためにバッチファイルも作るとか言わんよな。 >>536
やれる/やれないの話な
後出しでダブルクリックガーとか恥ずかしすぎるだろ w
ちなみに若干トリッキーだがバッチファイルにPowerShellのソースを入れちゃうこともできる ExecutionPolicyはCurrentUserスコープなら権限不要で変更可能
陽
この情報はプロならみんな知ってるけどアマチュアは知らない人が多いね >>537
???
今まで何の話をしてたんだ?
PowerShellの方がVBAより有利だと言いたかったんじゃないの?
君の発言を聞いてるとPowerShellはますます使いものにならないように感じるんだが、もしかして君は実はVBAの方が有利だと言いたかったのか? >>540
> 今まで何の話をしてたんだ?
>>529 > PowerShellはデフォルトで実行出来ないでしょ。
とか言う情弱がいたって話 w あれ? ExcelってVBAをデフォルトで実行できたっけ? >>542
まあ設定いるんだけど管理者権限は要らない
PowerShell も>>538が言うように管理者権限不要だけど>>529はSet-ExecutionPolicyの-scopeを知らなかったんだろうな 設定を変えなければ動かないことをデフォルトでは動かないというんじゃないかね
設定を変えるのが簡単かどうかは別問題だろ 既定では
右クリック→管理者として実行
右クリック→やWindowsPowerShellで実行
いずれも.ps1スクリプトは実行できない
>>543もまちがい
既定状態のPCでも
powershell -executionpolicy remotesigned -file 'hoge.ps1'
などと打てば自動的にプロセススコープで自作のスクリプトなどを実行可能 >>544
だからそんなこと言い出したらVBAだってディフォルトでは動かないって話
逆にPowerShellはオプションつければ設定変更なしに実行可能
要するに>>529が情弱っていう事実は変わらない
>>546
> >>543もまちがい
話の流れを読めよ…
既に>>532に書いてあることでドヤ顔されても困る w VBAってデフォルトでは動かないんだっけ?
マクロ入りファイルを開く時は許可か設定が必要だけど、新規ブックならいきなり使えたような
再インストールして確認するのは面倒だからうろ覚えだけど VBAはそもそもオフィスのインストールという過酷な作業が必要だからな
アマチュアの事務員さんは用意されたパソコンを使うだけだから知らないのかもしれないがな
プロはプロジェクトのたびに全員のパソコンを誰かが準備しなきゃならんのよ
オフィスのインストール作業は地味にでかい工数になるんだ デフォルトで信頼されてる場所のファイルでも動かなかったっけ?
大昔のエクセルならデフォルトでどこでもマクロ動いてたけどなw 実行するファイルとは別に呼び出す仕組みを用意する必要があるからpowershellがクソだって言われてるのが分からないのか?
頭悪すぎない? 実行スコープを細かく規定出来るのは進歩。クソだとのたまうアホはセキュリティ意識がおかしい そのスコープを組み込めない時点で終わってるという話をしているんですよ? スコープを組み込む
この言葉の意味がよくわからんので詳しく説明してみて vbaもエクセルファイル自体が実行可能な訳じゃなくエクセルというプログラムが解釈してやってるだけ
なのでvbaも別に呼び出す仕組みが必要と言っていい
その仕組みは膨大なインストール時間とライセンス料金を支払ってオフィスをインストールするという苦行を乗り越えないと利用できない
それに比べたらパワーシェルは実行までの手間は殆ど無視できるほど小さい
シェルでたったの1行コマンドレットを打つだけでOK
しかも無料なので嬉しいね OSのデフォルト状態で出来ることが前提
拡張子が.ps1の場合右クリックのメニューにremotesingedを表示させるとか? もうその話はpowershellのスレに移動してやってください >>552
> 実行するファイルとは別に呼び出す仕組みを用意する必要がある
はあ?
情弱自慢かよww 現実社会では話ができない寂しい「プロ」」のプログラマどもが何やらくだらん
雑談をしてスレを潰してるけど質問者の皆さんはそんなヨタ話に付き合う必要
はありませんので、遠慮なく質問をどぞ〜 ところでホンマにブロなん?プロさんて?なんかあやしいんですけどw Officeインストールするしないがオプションなんて事業所あるの? 厳密な定義や資格があるわけじゃないんで「プロ」を名乗るのは自由です >>563
そりゃもちろんあるよ
禁止してる事業所だってある
そもそもOS違いで使えないこともある >>563
うちの会社は開発専用機にはインストールしないけどそういう機器は自分でセットアップするからなぁ
>>550の言うプロジェクトの度に準備とかはよくわからんな CADなんかの専用ソフトしか動かさんとか開発機とかそういうのならわかるけど、
このスレで話題にする以上関係ないというか対象外でしょ 普通はイメージで展開して、個別はライセンス認証だけっしょ一台数分 >>558
へえ、ExcelってOSのデフォルト状態で使えるんだ? >>523-537
例えば、クリップボードでも、Ruby から、powershell コマンドを呼ぶ。
a.rb
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
これをダブルクリックで起動したいのなら、バッチかVBS で起動する。
a.bat
ruby .\a.rb
テキスト処理は、VSCode, Rubyで十分! >>571
VSCodeは個別にライセンスのある膨大な数のオープンソースソフトウェアの塊であり、
PowerShellを禁止しているような糞組織のPCにインストールすることは不可能
RubyもライセンスにGPLの文字を見つけた途端に情シスが卒倒するレベルで全くもって論外 excelってVBAからpythonに変わるっていってなかったっけ? dictionaryに格納してるItemを検索して、存在してればKeyを返却する方法が知りたいのだけど、ループさせてヒットしたら値を出す方法以外でfind的な一発でポンと返す記述の仕方はない? >>579
Item 間に順序関係があればそれを利用して二分探索を適用できる、無論、記述はループチェックに比べて量が多くなる >>579
一行で書きたいということなら、文字列ならワークシート関数Matchで検索できます。
ただ存在しなかった場合はエラーが返るので例外処理か事前に調べておく必要があります。
例)
Dim map As Dictionary
Set map = New Dictionary
map.Add "みかん", "橙"
map.Add "りんご", "赤"
map.Add "さくらんぼ", "赤"
map.Add "ぶどう", "紫"
On Error Resume Next
Debug.Print map.Keys(WorksheetFunction.Match("赤", map.Items, 0) - 1)
'りんご
Debug.Print map.Keys(WorksheetFunction.Match("白", map.Items, 0) - 1)
'エラー
On Error GoTo 0
個人的には普通に関数作った方が使いやすいと思います。 >>439
Excel.Application.Onkey で最優先ショートカットキーにできる
次いで.macroOptionsの古いほうが動くよ 配列とかコレクションに対してSQLが使えればいいんだけどな。
matchやvlookupより速いんだけど、いちいちシートとかcsvに書き出さなきゃならん。 >>582
おっと、回答いただけるとは。
onkeyだと、activeworkbookだろうが、thisworkbookだろうが、後定義したほうが上書き、後勝ちしません?
active側に定義されたショートカットがそれぞれ反応してくれると嬉しいのですが。 >>583
MSにExcelでC#使えるようにしてくれ〜
って要望をガンガン出せばお前の望みが叶うかも知れない >>580,581
ありがとう
Itemには順序関係ないから二分探索は出きなさそう
worksheet関数は完全に意識無かったので見た瞬間にあぁ!その手があったか!と目からウロコでした C#スクリプトってOSSで軌道に乗っちゃってるからExcelの処理系として採用されることはないと思うぞ
同じものをClosedで再発明するってのも馬鹿馬鹿しいしな
強力な言語を使いたいならその言語を主としてExcelをコントロールすればいい
それで十分だ
わざわざExcelに乗っける必要性は薄い この場合の再発明と言われれば車輪の再発明を連想出来ないのはかなり緩いんだろう いや、車輪の再発明はいいとして何を再発明するんだよって話
C#処理系のソースライセンス見てないけどMSが自社製品に使えなくなるようなライセンスにはなってないだろうし(なってたらVisual Studioの有償版とか売れなくなる)
普通にExcelに組み入れるだけだろ >>593
メンテナンスのコストを甘く見すぎ
Excelに入れるなら最低でも以後10年は完全な互換性を維持し続けなきゃいけないわけ
今メインストリームのC#環境を入れるなら.NET Coreを組み込むことになるだろうけど、
.NET Coreって完全なサイドバイサイドを前提にガンガン破壊的変更をぶっ込んでいくスタイルだから、
Excelのバージョンアップのときに単純に.NET Coreのバージョンを上げるわけにはいかなくて、
Excel専用のブランチを作って継続的にメンテしていかざるを得ないの
それは実質的には新たに.NETの兄弟分を作って独立して育てていくことに他ならず、多大なメンテナンスコストを生じる上、
.NET エコシステムの分断を生むことになる
そんな馬鹿げたことをするくらいなら普通に.NET Coreを直接使わせた方が遥かにマシだろう >>594
> Excelに入れるなら最低でも以後10年は完全な互換性を維持し続けなきゃいけないわけ
それVBAの開発担当者にも言ってくれよ w >>595
煽りはいいから直近10年でVBAに対して行われた破壊的変更を具体的に挙げてくれよ
当たり前だが不具合の話はしてないぞ? >>596
いや破壊的かどうかは別にしてもVBAも色々機能追加とかされてるだろ
VBAの機能追加をやめてそのリソースをC# for Officeに割くだけだよ
そもそもMac版はともかくWindows版のOfficeなら.NET Coreじゃなくて.NET Framework上に構築するだろうしな みっともないからいいかげん止めや似非プロさんの一人語り
そもそも出鱈目やってバレバレのプロ風の話して誰に対してマウント取りたいねんw >>597
Full .NET はメンテナンスモードに入ったよ
4.8を最後に、今後大きな機能追加はない
残念ながら、今入れても新たに時代遅れのゴミが増えるだけだ >>599
逆に都合がいいじゃん
.NETFrameworkは簡単に廃止できないから君が大事にしてる互換性も保ちやすいしね A4用紙に上から4件ずつ異なるデータを入力して、
印刷したいのですが、どうすればいいか教えて下さい。
データ数は日によって異なり、30件〜50件程度あります。
1ページ目に1〜4、2ページ目に5〜8・・・という感じです。
うまく説明出来なくてすいません。
4つデータを入力して印刷したら次、っていう感じの
ループ処理のコードのサンプルなどありましたら教えてください。 このループw
他言語を推奨してる奴らには馬鹿しかいない。
ExcelVBAのスレなんだからExcelが動いてるのが大前提なんだよ。
そこへノコノコ乗り込んで来てOfficeインスト―ルとか言ってる馬鹿は滑稽。
テキスト処理とかもアホ丸出し。
Excel関係無いなら、そもそもVBAでやる必要全く無い。
そして全くのスレ違い。 その後のC#やPythonを組み込んでくれって話はどうでもいい。
入って来たらそれで組むだけだ。 終わった話にノコノコ乗り込んでくるウスノロかよww 言われてみればVBAの破壊的仕様変更ってまったく無いよな。
オブジェクトを省略してて挙動が変わったくらいならあるけど。
64bit対応くらいじゃ無いか? >>607
ただパッチいれたら動かなくなったことはあった 2007の時、グラフ周りが軒並み動かなくなったことはあったな。 改ページ位置の誤検出がヒドイ。
一旦、改ページプレビューにしてから戻せば大丈夫ですとか、何だよそれ。 よろしくお願いします。
あるシートのコピーだけを新規の別ファイルとして保存したいのですが、
1 dim fn as string
2 fn="c:\*****\集計表.csv"
3 ThisWorkbook.Worksheets("集計表").Copy
4 Application.DisplayAlerts = False
5 ActiveWorkbook.SaveAs fileName:=fn, FileFormat:=xlCSV
6 ActiveWorkbook.Close
このように書きました。普通だと問題なくいっているのですが、この処理をしている途中で、
使用者がガチャガチャとマウスをイジり、いくつも開いているうちの適当なブックをアクティブにしてしまった
りなどしてると、想定通りの動作をしなくなってしまいます。
3行目でコピーしたときに、コピー先のその新しいブック自体を名指しできれば、いいのではないかと
思うのですが、いかがでしょうか?
「ActiveWorkBook」ではなく、ちゃんと名指しする方法ってないでしょうか? いろいろな事情があって、ExcelVBA に専心することになりそうです…Excel VBA から任意の win32api を呼び出すことは可能ですか? >>613
処理中いじるなと表示させたフォームをモーダルにして処理終わるまで×ボタン消しとくとかは? >>613
方法1:新規ブックはWorkbooksコレクションの末尾に追加されるはずなので、Workbooks (Workbooks.Count)で参照できます。
方法2:先に新規ブックを作っておけば参照出来ます。
余計な新規シートが触られる不安があるなら削除する必要があります※
例)
With Workbooks.Add
Dim fn As String: fn = "c:\*****\集計表.csv"
Worksheets("集計表").copy Before:=.Worksheets(1)
Application.DisplayAlerts = False
Dim elem As Worksheet '※
For Each elem In .Worksheets
If elem.Name <> "集計表" Then elem.Delete
Next elem
.SaveAs Filename:=fn, FileFormat:=xlCSV
.Close
End With
方法3:集計表なので数式が入っていると思いますから、Copy時のCalculateイベントでシート自身に保存させます。
例)
Private Sub Worksheet_Calculate()
If Worksheets.Count > 1 Then Exit Sub 'Copyされた単一シートか判定
Dim fn As String: fn = "c:\*****\集計表.csv"
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=fn, FileFormat:=xlCSV
ThisWorkbook.Close
End Sub
上記を集計表シートのシートモジュールに書き込むと、Worksheets("集計表").Copy だけで自動的に保存されます。 Worksheets("集計表").copy
↓修正
ThisWorkbook.Worksheets("集計表").Copy 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) >>614
トリッキーな技が技があるかもだけど「任意の」となると単独では無理と思った方がいい >>614
任意ってのはどういう意味?
動的に呼び出したいってこと?
それだったらかなり高度になる。 declareで追加するだけでしょ
ぐぐればサンプル大量に出てくるし
高度でもない 厚生省の中の人がプログラムで不正するように描いてたのってExcel? あれはファイルの更新日をいじっただけだったはず(開いて上書き保存かもしれんが) >>621
それは静的に呼び出すということ。
動的の場合は、LoadLibraryとかGetProcAddressとかを使う話になる。
昔、調べまくってサンプル作ったことあるけど、何でも自由に動かせるものじゃなかった。
というより殆どのAPIは動かなかった記憶が。 LongPtr型とPtrSafe宣言ってそれぞれどういうときに使うんですか? >>626
どっちも64bitでAPI呼ぶ時に使うけど、ほかの使い方は知らん Excelはどのくらいポリゴン表示出来るの?
1. PS並み
2. PS2並み
3. PS3並み
4. PS4並み 今のPCならオートシェイプで3DレンダリングしてもPS1には楽勝だろう 闘神伝のエリスのシースルーは再現可能ということですね。 もともと「任意の」APIだったのが途中から動的に呼び出す話になってる 回答者の連中が勝手に条件を考えて話をややこしくするのも
質問者がそれを修正しようとしないのもこのスレのお約束 だいたいDeclareなしに呼び出さなきゃいけない要件なんてあるか?
候補となるAPIの範囲なんてどう考えても限られてるだろう。
ジグネチャ情報ごと外部からもらうのか? >>637
プラグインdllを呼び出すような要件だな。
プラグインdllを指定のフォルダに入れてもらうようにしておいて、呼び出し方はこちらで決めておく。
指定フォルダからdllファイルを列挙して、ファイル名と、決められた通りの呼び出し方で呼び出すやり方になるからDeclareは使えない。
まあ、めったに無いだろう。
>>635
「任意」の意味がよく分からん。
動かしている最中に「任意」のAPIを呼び出したいという意味かと思った。
それともcdecl呼び出しのAPIは基本的に出来ないっていうような話をすれば良かった?
まあ、DispCallFuncでゴニョゴニョで出来るんだけども。 VBAでは(トリッキーなことしないと)作れない引数型のAPIのこととかじゃね? 初歩的かもしれない質問でお恥ずかしいのですが、知恵をお貸しいただきたいです。
1年の中で最大の数値が含まれる日付の値全てを別シートに貼り付けるというVBAプログラムを作成したいです。
また、この場合の1日とは前後1日分ではなく、その時間が含まれる1日の事です。
例えば、30分毎の売り上げ金額が入力されたexcelシートが1年分あるとします。
1年間の中で最大の売り上げ金額が、2018/2/14 12:30に存在すると仮定します。
その場合に、2018/2/14 0:00〜 2018/2/14 23:30
の値を抜き出し、別シートに貼り付けるというプログラムを作成したいです。
データの形は、
2018/2/14 0:00 300
2018/2/14 0:30 200
・
・
・
2018/2/14 23:30 500
のようになっています
自分でも一通り調べてみたのですが、どうしてもしっくり来るものが見つかりませんでした。
どうぞよろしくお願い致します。 >>638
おまえは頭が悪くて他人にものを教えられる様な人間やない
ちゅう事をそろそろ思い知った方が幸せになれるで >>640
問題を分割して考えよう
1. 最大の値を持つ行(と言うか日時)を取得する → 最大日時とする
2. 以下を最初の行から最後の行までループする
2.1 行が持つ日時と最大日時の日付部分だけ比較する
2.2 日付部分が合致してたらコピーする
で、どこがわからないの? 調べるだけで頭を使っていないのだからわかるわけない
ゆとり教育世代にありがち >>641
自分が頭が良いということを全く証明もせずに絡んで来られても困るんだがw
こういう絡み方で頭悪そうだとは思うけどね。 >>643
マウント取りたいだけの老害
なんの生産性もないからやめた方がいいよ hoge.dll だけあるときに hoge.def を作りたいんだけどどうすればいい? >>642
おっしゃる通り1つずつこなしていきたいと思います。
最大値を取得する所まではなんとかなりましたが、最大値が入っているセルの左からoffsetによって値の取得をしようとしています。しかしエラーが出てしまい(91エラー)詰まっています。 >>647
defファイルってビルドの時に使うもんだけど? >>649
馬鹿過ぎだろ
もっと悩んでから来い、ゆとり >>651
お前なにしにきてんだここに。
最低だな、人として。 >>642で答えを教えてもらっても理解できないような頭の悪さが問題だろう。こんな頭の悪い奴はプログラムするなと俺は思う。 ほー
>>655くらいの天才になると最初からプログラム完璧に理解できたらしいな
凄い凄い
>>653
めげずに頑張ってくれよ
だれでも最初は初心者だ VB6で作ったADOを使ってデータベースからエクセルシート名をComboBoxに入れるソフトがあって、それをwindows10で動かすとエラーで止まるんだけど原因分かりますか?
シート名が一文字の時だけエラーが出るのは分かったけど何か理由だと思いますか? >>640
その日付でアドバンスフィルタ。
検索する側の日付と、検索される側の日付は、
何型でもいいから統一する。
LeftやMidと"/"を組み合わせとか、
Format(日付, "yyyy/mm/dd")とか適当に。 アドバンスフィルタが何なのかわからなかったら、
フィルタオプションの設定の使い方を覚えて、
マクロの自動記録をするといい。
ちなみに、ループより激速だから。 >>640-642
Ruby で作った
# 各行は空白で区切った、3列の配列。
# 全行は各行の配列、つまり配列の配列
all_rows = File.readlines( "input.txt" ).map( &:split )
# row[ 2 ]、金額が最大数値の行を求める
p max_row = all_rows.sort_by { |row| row[ 2 ].to_i }.last
# 全行からrow[ 0 ]、同じ日付の行だけを集める
p all_rows.select { |row| row[ 0 ] == max_row[ 0 ] } >>661
修正
# row[ 2 ]、金額が最大数値の行を求める
>p max_row = all_rows.sort_by { |row| row[ 2 ].to_i }.last
p max_row = all_rows.sort_by { |row| row[ 2 ].to_i * -1 }.first
last だと、最後まで配列を作ってしまう。
一方、first では最初の1つだけを求めるから、速い >>661は
ボクタンンRubyが出来るんだぞぉおエライんだ。ボクタンンを褒めろぉぉお
Rubyのスレでは褒める奴が居ないからここでエラぶりたいんだよぉお
なウスラバカ 他言語質問スレの質問をRubyで解答するスレでもたてれば? Rubyスレで相手にされず、ここならドヤ顔できるだろと思って来たのかw dumpbin /exports hoge.dll
と
lib /def:hoge.def
でいけるな DispCallFuncって最近また流行ってるの? Private Function getIE(arg_title As String) As InternetExplorer
↑
こういう書き型ってどういう意味になるんですか?
普通に関数を作るなら
private fanction 関数名(ByVal 引数名 as 引数の型)
みたいな形になると思うんですが
上記にあげた例でとくに引数を()で閉じた後のas InternetExplorerの部分がよくわかりません >>671
"as 引数の型"の意味が理解できるなら
"as InternetExplorer"は簡単に想像つくだろ Private Sub 関数名(引数名 As 引数の型)
Private Function 関数名(引数名 As 引数のデータ型) As 戻り値のデータ型 >>671
中の処理を見ないとわからんけど、
そういう書き方をする場合、普通に考えたら、
getIEにInternetExplorerのオブジェクトがセットされて返ってくる。 タイトルバーの文字列からウィンドウを検索する関数だろ
IE操作のサンプルとして、ネットでも本でも色んな所で見かけるやつ >>674
あらたまって「俺VBAできます」なんて言うことは無いけど
問題の解決にVBAが最善なら偏見持たずに採用するよ どうしても使わなきゃならない場合にはVBAを使う
なにも理由がなければこんなもの使わない方が精神的に健全 Windows10のアップデート1809を適用したらcreateobject("InternetExplorer.application")でオートメーションエラー(実行時エラー -2125463506)が発生するようになりました。
これを回避する方法があれは教示ください。 >>680
参照設定もInternetExplorerMediumもダメ? >>681
会社の方針でOffice以外のアプリや言語は使えません。そのため、VBAのみとさせてください。 >>682
参照設定はInternetcontrolsとHTML object libraryを設定しています。これは適用前と変わりません。
New InternetExplorerMediumでもおなじエラーが発生します。
1809適用前の他PCでは正常に動きます。 >>684
すみません、クロームやエッジは使えませんが、IEは可能です。 なるほど状況はわかりました
問題の検証にはまず最初に他の言語が必要です
パワーシェルの使用許可を取ってください >>683
マジメな話、本当にダメなのかは思い込みの部分が多いんじゃないかと思うぞ >>672
>>673
>>675
ありがとうございます。VBAは戻り値の型も指定できるんですね。
というか、思い出しました、C言語でも頭にstringとかintとかつけましたね。
あれが末尾に来てこういう書き方になると。
ありがとうございました。 しかしVBAは良くて他がダメっておかしな話だな
使い勝手が違うだけで、大概の事出来ちゃうだろ >>690
VBAの利用を推奨していないのは他でもないMSだ 逆に、C#にできてVBA+APIでできないことって何がある? ソフトウェアが端末毎に異なると動作検証の障害になるケース >>692
そらWebアプリとかスマホアプリとかMac/Linuxとかゲームとか科学技術計算とかいくらでもある
VBA(API, COMなし)で無理なく可能、かつExcelワークシート操作が必要な場合に態々C#を使うのはそれこそ馬鹿の一つ覚えだと思うけどね 希に、変数が定義されてませんみたいなエラーが出るんだけど、何だろう?
しかも変な位置で。
Dim a As Long : a = 1
Dim b As Long : b = 1
MsgBox a ←普通、aにエラーが出るとしたらここだけど、
Cells(a, 1).Value = b ←なぜかこの時点で出る
Excelを再起動しても治らないんだけど、
3行目と4行目を入れ替えて、また戻すと治る。
わけわからん。 >>697
当方、excel2010の新しいブックでテストしても何の問題もなし >>697
> MsgBox a
で値は表示されてるのか?
表示されてるなら値はどうなっているのか? >>697
全角空白とか混ざってない?
マルチステートメントもやめよう >>698
特殊なものはつかってないけど・・。
>>700
表示前にエラーになったから見てないや。
>>701
VBSで全角空白がダメなのは知ってるけど、VBAでは実行できてたので、気にしてなかった。
マルチステートメントって「:」使うやつ? ↑途中送信しちまった。
Constは1行で書けるのに、Dimが2行になるのが嫌なので、宣言は1行にしてる。 >>699
こっちは2013。
普通は問題ないんだよ。行を入れ替えて戻せば治るから、
構文的におかしいことも無いだろうし。 コードのコピペをミスったとかじゃないかな
どこか編集すると大文字小文字や空白が自動的に修正されて直るとか >>697
たぶんデバッグ中に宣言書いたりしたんやろ?
そう言うことするとバグる。
一旦コードコピーして、モジュール作り直せばいいよ 1行目にデータを取って2行目に1行目を参照したmid関数を1行目と同じ数だけ用意したいのですが
Dim m As Integer
m = 1 'カウンタmを用意して1を設定
Do While Cells(m, 1) <> "" '1行目が空になるまでループ
Cells(m, 2).Formula = "=mid(" & Cells(m, 1) & ",15,5)" '2行目には真横のセルを参照したmid関数を入れる
m = m + 1
Loop
これじゃダメなんですが、4行目のmid関数をセルに代入するとき相対的にcells(m,1)を参照させていきたいんですが
どういう風に書けばいいんでしょうか? Cells(m, 2).Formula = "=MID(" & Cells(m, 1) & ", 15, 5)"
Cells(m, 2).FormulaR1C1 = "=MID(RC[-1], 15, 5)" みすった
Cells(m, 2).Formula = "=MID(" & Cells(m, 1).Address & ", 15, 5)" 1から30の乱数字を5回ループした合計を出したい。
同一数字が出ることをよしとした場合のコードってどんなですか? >>714
For i = 1 To 5
s = s + Int(Rnd()*30+1)
Next
細かいことを言うと、「同じ数字が出てはいけない」などの条件を付けた時点で、それは乱数じゃなくなる >>715
> 細かいことを言うと、「同じ数字が出てはいけない」などの条件を付けた時点で、それは乱数じゃなくなる
べつに乱数が欲しいとは言ってないようだが? WorksheetFunction.RandBetween
長いな 3D6+5とかをループ使わず一発で計算したいって質問なんじゃね? >>725
それぐらい自分で考えろやプロさんw
脳ミソついとらんかプロさんの頭にはw >>725
もっと簡単な例で考えれば分かる
1〜6のサイコロ2個と、2〜12のサイコロ1個で合計7の出る確率は、前者は6/36=1/6、後者は1/11
結果(確率)がまったく違うから、同じプログラムとは言えない ワイは>>727の恥ずかしさをもっと掘りさげたいんやw いつも思うんだが、どういう状況で使うんだよ。
Excelでゲームでも作るの? 話をそらさずにもっと>>727の恥ずかしさを語り明かそうやw 数学の確率は人間の直感を裏切ることがけっこうあるから、慎重に扱わないと痛い目を見る 確率が直感に合わないのはほとんどの場合解釈を間違えてるだけ バグと確率の問題をすり替えて逃げてる馬鹿がいる。どこにバグがあるか指摘してみろや。
VBAしかしらない馬鹿どもが。 「乱数字」という言葉の意味がわからない限り、誰も何も回答できないわけだが
回答者が勝手に問題を作って議論を始めるいつものパターンになってるな 結果が意図と違っていたらバグ
たとえば乱数でサイコロをシミュレーションするプログラムで、どれだけ試行しても確率が1/6に収束しようとしなかったらバグがある >>735←バグの意味を知らんプロさんwwww
ええでもっと恥ずかしがってもwww よろしくお願いします。
あるxlsmファイルを、1ヶ月間だけ使える、という形にしたいです。
つまり、各使用者がそのファイルを自分のPCに置いてから、1ヶ月だけは操作できると
いうことなのですが、どのようにしたらよいかわかりません。
ファイルを開いたときに、そのファイルが設置後1ヶ月経っていたら「もう期限切れ」とメッセージを出して
操作を不可能にしてしまうのを考えていたのですが、その設置日というのをどう取得すればいいのか。
「USBメモリなどから、そのファイルがそのPCにコピーされた日」を取得するにはどうすればよいでしょうか? 「ブックの作成日」でググって出てきた二つ目のサイト
ttps://www.moug.net/tech/exvba/0130015.html Excel 2016 (64bit) のVBAで質問です
とある理由で、大規模桁の計算をしないといけなくなったので
取り急ぎLongLong型の配列を作って必要な演算を作ろうかと
そこで、エラーが出て悩んでいる案件と、ちょっとした疑問が
とりあえず、代入されるものが数値であるかのチェックは必要よね…と思い
IsNumeric関数を使おうかと思うのですが
これって、例えば100桁の整数を表す文字列でも通るんでしょうか…って通るみたいなんですが
上限は文字列として扱える上限まで行けるんでしょうか?
計算の都合で商を求める演算「\」を使ったところ、10^12 \ 2^22 あたりの計算でオーバーフローとなりました
(実際には、2^22のところはそのオーダーの定数)
「\」の計算は64bitに非対応なのでしょうか? それこそPowerShell呼んでBigInteger使えよ >>740
基準日をどうするかにもよるけど、
一番簡単なのは、If 今日の日付 = 2019/2/28 Then Exit Sub 的なやつ。 あ、コピーされた日か。
じゃあFileSystemObject使うとか。 コピーされた日なんてどこにも記録されてないんだから取得のしようもないだろ 起動時にあるセルが空白なら今の日付入れる。
空白でないのなら、セルの内容と今の日付を比べる。
セルは非表示のシートとかでよくね? >>744
別に作成されているマクロのコンポーネントになるので不採用ですね…。 スルーされてるけど>>741に日付取得のソースが丸々載ってますよ
余程変なことをしなければ、コピー日時はファイルの(≠エクセルのプロパティ)の作成日時です
適当なセルをパスワード保護して、ブックモジュールのOpenイベントに空白条件で日付を入れるコードを書けば初回起動で記録されます。
>>743
\演算子が良く分からないのですが、除算の結果から小数点以下を消すという意味なら
Int(10 ^ 12 / 2 ^ 22)
でどうでしょうか >>749
WScript.Shell で呼べばいい
VBAのソース内に書いたPowerShell実行できるぞ >>751
何でそういう面倒くさい方法にしなきゃならんの?
VBAじゃどうにもならんという結論か? >>752
VBAでやろうとすれば自前で多倍長整数演算を実装する必要があり、開発とテストで誇張抜きで工数数百倍かかるよ >>753
だからさ、まずお前の結論としてVBAじゃ無理というのがあって、それからだろPowerShell云々は。
で、本当のところ、無理かどうかは分からんが、仮に無理だとしてどうしてPowerShellになるんだ?
別に他でも良いわけだろ。 >IsNumeric関数を使おうかと思うのですが
On Error Resume Next
数字じゃないとエラーが起きるような処理
エラーが起きたら終了みたいな
On Error Goto 0 >>743
>>IsNumeric関数を使おうかと思うのですが、上限は文字列として扱える上限まで行けるんでしょうか?
ちょっと質問内容が良く分からないのですが、
・そもそもLongLong型(64bit=8バイト)の話では無かったのですか?100桁とは?
・ヘルプに有る通り文字列型の上限は2GBですが(以下同様)
仮に2GBの判定が出来たとしても、その膨大な時間を使うよりは例外処理してしまった方が早いと思います。 >>743
よくそんな仕事請け負ったな、依頼者に騙されてないか? お話を聞いてる限り、恐らく元々の依頼内容も勘違いされている部分があると思うので、
差し支えない範囲で教えて貰えれば根本的な部分に回答が出来るかもしれません。 >>755
別にPowerShellでなくてもいいけど、標準のWindowsだけで特に追加で何か入れることなく使えて
多倍長演算もサポートしててVBAから簡単に呼べるのなんて他にある? >>757
そちらの質問は興味本位です。与えられた数値に見える文字列を信じるなら不要です
それと、LongLong型で済むなら配列はいりませんし
やりたいことは、例えば「100桁同士の四則演算をする」というようなことです。
コンパイラのインストールをセキュリティポリシーで禁止されているので
困っているのですよ。
>>759
そちらは時間があれば勉強してみようかと
ただ、それで実装すると引き継ぐときに後の人が大変そうですが >>762
あまりに馬鹿過ぎて話しにならん
どうして馬鹿と言われるか理解できるか? >>750
初回起動で設定しても元のブックをコピーし直せば何度でも使える
何の条件で期間指定したいのかわからないけど
パソコン限定ならレジストリでも使うのかな >>743
言語の動作もわかっていないこんな奴に依頼するなんて。頼む方も頼む方。 Excel VBAの質問スレだろ
質問も回答もする気無いならスルー出来んのか? 答えられない質問はとりあえず馬鹿にして勢いで乗り切る方針のプロさんw
バカwww ComboBoxで↓を押して表示されるリストの行数は固定でしょうか?
表示行数を増やす方法がありましたら、ご教授ください
よろしくお願いします >>765
Excelのレジストリ操作だと簡単なのはそのパソコンのユーザー毎の設定だな
無論APIを使えば何でもできるけどね
所詮はバーチャルマシンも考えればユーザー側も何でもできる
その程度と思って使うか ネットにDB持つかだな 最近はexcel2010とVB.netで改元対応しています。
excelのイベント少ないなって思っているのですが、2016などの新しいのはイベントや関数などは増えているのでしょうか?
2019なんかはタブレット操作用のイベントもあったりするとかでしょうか? なんかすごいところだな
>>764とか上から目線ってかもう天から垂直に見下ろして魔法打ち込んでるレベルだな
しかも書き込んでる時間が深夜3:00とか超絶生活者 763 名前:デフォルトの名無しさん[sage] 投稿日:2019/02/01(金) 02:51:10.44 ID:Jdk/7rOF
100桁ぐらいなら、Ruby でも演算できる
ゲラゲラゲラゲラゲラゲラ >>773
計算するライブラリーが有るってことじゃないの
Rubyしらんが >>771
VBAはレガシー扱いだからMSのポリシー的に積極的な機能追加は不可
ちなみにVB.NETのWindowsフォームも既にレガシーで開発終了してる >>773
計算できるライブラリーがあるだけじゃないの
どんな言語でも、4則演算程度なら作れるだろ VBAだって超多倍長演算ライブラリぐらいネットに転がってんじゃない?
ちなLongLongで扱えるのは18桁まで、乗除算でオーバーフローを起こさないようにするなら半分以下の桁で使うのが無難 VBAなんて低級言語を真剣にやってるバカ
言い訳は色々あるんだろうけどそろそろちゃんとしたのを覚える時期だよ 低級言語・高級言語の意味すら分かってないのって
かわいいな もしレベル的な意味合いで貶すなら下級または低俗じゃないかな
低級だと金額的な意味合いだからオフィス製品みたいな安い言語使いやがって、という意味か
高い開発言語ってなんだろ >>779
お前の馬鹿頭ではアセンブラは何言語になっているんだ? どんな状況で100桁の計算が必要なんだよwwwwww
弾道計算でもするのかよwwwwww
どうしても必要だとして、
16777216を、256×256×256で表現するRGBみたいに、
分離して計算できないの? 桁数じゃあなくて精度の問題だろ
何桁精度が必要か
全部なら分けて計算するんだろ
整数限定かよ >>762
Mid関数がString型の限界である20 億文字(桁)まで対応出来るようなので、限界まで判定可能です。
実際に試そうと思ったのですが、1000万桁あたりからエラーは起きないものの処理が終わる気配がありませんでした。
また、311桁目から判定がFalseとなり正常に判定できませんので注意してください。 >>782
>低級だと金額的な意味合いだから
は????????? >>786
こんな馬鹿に人月とかで請求されたらブチ切れる
馬鹿だから時間を食うだけだろ >743
何桁通るかは別として、IsNumericって例えば"1.2e3"とか"\30"とかでもTrue返すんだけど、それはいいの? あと"&hDEADBEEF"とか"&o77"とか
ついでに全角/半角が混在しててもTrueだし、文字列の前後にスペースタブ改行なんかが入っててもTrueだね declareのシグニチャー間違えたらフリーズするんだけどdllから型情報取れないの????? >>795
調べりゃ出てくるんだからそんな面倒なことしなくてもよくね? そんなに桁数使うことあるの?
桁数ならアセンブラなら言語的な制限がないから
C++のインラインアセンブラで作ってDLL化しておけばいいんじゃない?
ま、あまり桁数が多い場合は外に出しても数字として扱えないだろうから
文字列として扱うしかないけど >>797
アホか
CPUがネイティブで扱える桁数は決まっている 8bitCPUがネイティブで扱える電卓は決まっている 昔々、256桁の四則演算ルーチン組んだことある。アセンブラで。
今なら VBAでも同じくらいの速度で動くんだろうな… このスレで質問する薄ら馬鹿に匹敵する馬鹿ばっか
Python3使えよというまともな提案が未だなし 801<カマッテー、カマッテー、ボクチャンヲ カマッテー シート1をアクティブにしてWEBクエリで取り込んだあとReplaceで置換したいのですが
うまくいきません。なぜかF8でステップ実行したらできるのですが、普通に実行すると置換されません。
何がいけないんでしょうか。 >>798
アホか桁繰り上げ繰り下げのフラグを知らんのか?
むかーしのZ80や6502だってメモリの許す限り
際限なく計算出来るわ そもそもそう言った計算方法を
知らなかったとしても
8bitや16bitしか演算に扱えなかった時代に
テレビゲームとかで255や65535を超える
スコアが表示されていたことを思い出せば
普通は人をアホ呼ばわりすることを
書き込む前に気付きそうなもんだけどな そういう処理をアセンブラでしかできないと思ってるからアホだって言われるんだよ 多少非効率になるけどたいていの言語で多倍長演算はできる
なので
> 桁数ならアセンブラなら言語的な制限がないから
とか意味わからん、って話だろ >>806
いや>>798はあからさまに
「CPUがネイティブで扱える桁数は決まっている」からって言ってるんだが?
それに俺は実現方法の一例を挙げただけだと思うが「アセンブラでしか出来ない」なんて
どこに書いてあるんだ?
もっとも、桁数制限のない計算を
もっと効率よくVBAで使用する方法が
あるのであればそれはそれで聞いてみたいけど >>807
効率を考えなければ別にC++の時点で出来るんだよ
なんでC++からインラインアセンブラを
使用するような話をしていると思う? >>805
まあ、単位が100点だと、後ろの00は飾りだと思うけどな。 >>808-809
なに効率とか後付けしてんだアホ
あと「コンパイラのインストールをセキュリティポリシーで禁止されている」って書いてあるのを読めてないのもアホ ゼビウス1000万点超えは9999990で表示が止まるがゲーム続行 >>812
> あと「コンパイラのインストールをセキュリティポリシーで禁止されている」って書いてあるのを読めてないのもアホ
今時C#とかVB.NETのコンパイラなんてインストールいらんぞ
情弱なのかXPでドヤってるのかは知らんけどw >>812
今のWindowsはインストールしなくてもC#コンパイラが最初から入ってる >>817
コンパイラの話な
恥ずかしいからもう出てくんなw html?のようなパラメーターのあるURLから ActiveSheet.QueryTables.Add を使って
WEBクエリで取り込むにはどうすればいいでしょうか?
一部変数を使うのですが文字列を結合するやり方ではうまくいきません。 >>822
認証やクッキーが必要か、URLが間違ってるか、エンコードが必要か、原因は色々考えられる >>823
エンコードが原因みたいです。
&や=は使えないのですね。
返信ありがとうございました。 以下のアプリを作って欲しい
画面上でオンスクリーンかなんでもいいので、文字が瞬間的に現れて消えるアプリ。
1つのばりばらに並んだ文字につき!約1秒から0.05秒の間で調節できるようにしたい。
文字のデータベースは、同ブック内の別シートにて管理するものとする。 >>825
ExcelとかVBAじゃなくていいなら作るけど >>825
作るのは他の要件が有るだろうから他の人に
Excelのシートから枠線を消して全画面表示
ランダムに出す文字はワードアートを挿入したり
消すだけでいいだろ >>824
>&や=は使えないのですね。
エンコードでは使えるだろ、デコードはデコードする
文字の法則があるけど
ちなみに、エンコードやデコードは必要なの? >>827
じゃあ、Androidアプリでいいから、つくってフリーでGoogleストアにだせる? >>831
Androidアプリ関係ないだろ
VB C#なんかでCVS形式などでパラメーターで受けて表示するプログラムなら簡単に作れるってことだろ >>834
イエス。言語を選ばないとやっぱり難しい? >>835
別にVBAでも簡単だと思うけど作成依頼だったら費用が発生するのが普通だと思うんだが。
0.05秒ってのがどうかだね。 費用が発生しとる作成依頼なんか見たことないわw
何を言っとるんやこのバカw >>835
別に難しくない
0.05秒を気にしている人もいるが、正確な時間を取得することは出来る
ワードアートの作成・削除の時間を気にしているなら、表示・非表示の切り替えで
対応すればよいだけ
全画面表示・タイトルバー・スクロールバー・シートタブの非表示
ボーダーも0に設定すれば良いだけ 取得できても(人間の反応速度と比較して無視できる程度の誤差で)正確に表示するのはExcelでは厳しいでしょ
ちらつきまくるよ まあ、出来ない人間には出来ないだけ、書き込む必要もないのに
やり方なんていくらでもある >>841
やってから言ってんの?
俺はまだ、やってないから気にしただけなんだが。
ちなみに、俺はVBAのUserFormもシートも使うつもりは無い。
スピードも速いとは思うが、何ぶん計測したことは無いからね。 >>837
自分は何もせずに依頼すれば出てくるというのは虫が良いだろという意味なんだが。 >>845
1に作成依頼受け付けますと書いてあったから期待して依頼したが、馬鹿を見たよ >>848
じゃあ、
「ExcelのVBAに関する質問スレです」も守れや。死ねよ。 エディタは別のを使わずに備え付けのものを使いますか? 高速でシートを切り替えるとか、
ふざけるのかと思ったら、結構真面目に作っててワロタ。 >>854
後で見てみるけど、仕様になかったインターバルの時間とか可変で設定できる? フラッシュ暗算て何?
てっきりルパン三世だと思ったんだが >>857
まあ、これが評価できる最低限の仕様だな ちゃんとしたのを、>>850が作ってくれるやろ
ことを期待しよう >>828 デフォルトの名無しさん2019/02/04(月) 06:46:04.48ID:d8a/a/xM
>>825
> 作るのは他の要件が有るだろうから他の人に
> Excelのシートから枠線を消して全画面表示
> ランダムに出す文字はワードアートを挿入したり
> 消すだけでいいだろ
最低限でもこの程度のことやれよっと、ワードアートの動作速度が問題なら全て作成してから
表示非表示を切り替えるだけだよっと >>861
こんなの客に提示するとすぐ帰っていくよ
イメージが違い過ぎる 行間を読めない奴はいつまでたってもろくなもの作れないんだよ
おれは、年取ったから行間いっぱいある奴は遠慮するけどな ちゃんとしたのを、>>850が作ってくれるやろ
ことを期待しよう。 >>865
ちみぐらいバカをからかうのって私の趣味ではありません
あわれ過ぎるから >>869
知らねえと言われても
ファイルが見つかりません
既にファイルが削除されたか、期限切れになったか、ダウンロード上限数に達した、若しくは誤ったURLが指定されています。
再度ご確認下さいますようお願い致します。 >>870
今さっき起きた。
ソースを1分程度見たけど、毛が1本生えただけだろ
オリジナル性もない、引かれている部分もありで
評価はマイナスだな、マクロを動かす気にもならん >>857
ホントなんだよ、この映像少なくとも全画面表示で
他の表示はテスト中いらないは
結果は、答え合わせでちゃんと出るようにな
問題作成だって、何の機能もないって考えてないだろ
指定した桁数で数字を作成しろよ・・・こんなの仕様の内の一寸な >>870
テストしないのは申し訳ないと思ってもう一度20秒ぐらい見た
あまりにごみで、テストしてない 金もらえるならきちんと作るだろうけど金出さないんでしょ? きちっとって このレベルを100倍してもくずはくずだな ただでもらったものにケチつけるって人間としてクズだな なんかつらいことがあったんでしょ
そっとしといてあげなさい A B
1 あ
2 い
1 か
2 き
3 く
1 さ
1 た
2 ち
となっているデータを、連番でまとめて
あい
かきく
さ
たち
とするにはどうすればいいですか? >>881
関数で直接は難しいけどVBAでやるなら簡単だろ
ただそれもわからない人間に提示しても無駄だな >>880
マクロを実行してみた、君は自分で考えてるんで良いと思う
1.出力する問題は固定ではなく文字とか長い数字もいらない
桁数(上限・下限)を指定してランダムに数値を発生すること
フラッシュ暗算を考えると余分な機能はいらない
2.バックを全画面表示にすること
もちろん、画面の中央に表示する、画面の大きさから割合で文字の大きさを指定する
3.タイミングをmsで指定指定しているが
ディスプレーって最大解像度ではリフレッシュレート60hz(16.6msおき)程度なんだよ
ディスプレーの反応速度も早くて5msかかる、10ms単位で十分だが、好みはある
4.答えの表示がチェックだが
要するに終わった後、計算が合ってるかを確認するんだから
終了後に特定のキーを押したら答えを出すでいいだろ
ざっくり、大きく気になった点だけ、やり方は分からなければ聞け 全画面表示は数字表示部をユーザーフォーム(全画面)で表示文字をVBAで切り替えたほうが簡単だな 上司気取りの人が上から目線でダメだしし出したけどこの人どんだけ偉いの?
まさか感謝でもしてもらえるとか妄想してんのかな >>887
で、君にはどんなダメ出しが欲しいんだ? まあ、自分で作って「フラッシュ暗算」で面白いものを作ってみろよ
自分で満足できないものは、他人は評価しないよ >>881
Dim i As Long
i = 1
Do While Range("A1").End(xlDown).Row > i
Cells(Cells(i, 1), 3) = Cells(Cells(i, 1), 3) + Cells(i, 2)
i = i + 1
Loop
答えやアドバイスをしないでマウントしてくるやつは結局何も出来ないやつと同じなので放置で。 >>892
だよね
ひらがなのあ行か行…で括るっぽいし
2行目の2と4行目の2が紐づく1が違うから考えれば出来そうだけど面倒そう これでどうや!w
Dim i, j, k As Long
i = 1: j = 1: k = 1 'i=データの行 j=書き込みセルの行 k=数列のカウント用
Do While Range("A1").End(xlDown).Row >= i
Cells(j, 3) = Cells(j, 3) + Cells(i, 2)
If Cells(i + 1, 1) <> k + 1 Then j = j + 1: k = 0
i = i + 1
k = k + 1
Loop >>896
>これでどうや!w
何に対して言ってるのかな?。なんだろう?こんなの提示して?
よくわからんな >>897
ばっかだなぁ、881に対していってんだろw
つかお前マウントとることしかしないASDのザコという認識だから何も求めてない。レスいらない。
するならちゃんと自分で作ったものを提示してからだ。できたらあやまる。 例えば
「Do While Range("A1").End(xlDown).Row >= i 」
こんなの"A1"と変数jとiが同期できていないことでプログラムじゃないよ >>898
からかうしかないけど、>>881って何か意味あるんか?
バカって面白いな >>899
いや、そうじゃなくってよ。
俺はプロじゃないから変なことしてるかもしれない。いやあるだろう。
そいでお前は凄いのかもしれないけど結局何も作ってないわけだろ?
それって何も出来ないのと同じなんだから偉そうにするなって言いたいの。
お前さ、俺の言っている意味解ってる? >>903
無能が無能に教える意味あるか、無能が威張る意味あるか?
役に立つってなんだよ?
お前の満足は何だよ、作ったってことか? >>904
ん?お前無能なの?無能なのに威張ってるの?ダメじゃん。
役に立つって何?満足って何ってどういう意味?
俺はそんなこと書いてないけどそれはどこから出てきたんだ?
お前ののーみそか? おれがこのスレで作っても意味ないからな質問スレだ答えるだけ ああ、そういうことか。
質問には答えるけど代りにお前が作ることはないって意味でいいのか?
それがお前のポリシーなら俺はお前に口はさまないよ。
偉そうにされて終わるだけみたいだからお前には質問もしたくないけどな。
質問してるやつはいろいろ試して困ってるんだろ?
俺は動くもの見せて、あとは自分で工夫するなりなんなりした方が良いと思ってる。
だって、具体的なほうが解りやすいじゃん。
それに対してお前がどうこう言うことはないだろ?俺はお前に何も聞いてないんだから。 >>907
まあ、補足すると具体的なものを使えるのは少し考えたやつ
考えない奴は応用できない、だから答えではなくヒントなんだがな >>908
うーん、辞書がわりに次々聞かれても結局俺が作ってるかいー!
みたいになりそうで確かに嫌だな。
ただお前凄そうなんだからそんくらいしてやってもバチあたらんべ。
あ、そこらへんは俺が口はさむことじゃないな、すまん。でももったいないわーほんまに。
俺は基本は自分で調べるから聞くことってほとんどないけど
本当に困っててもまともな返答来なさそうでここで聞けないからさらに困ることあるもん。
お前に言ってるわけじゃないけどライトユーザーからしたら雰囲気怖いよここ。 >>880
お前、ちゃんと満足いくもの作ってみろ
やめるのは簡単だまんぞくできるレベルもお前しだい
おれは、ダメ出しはしてやるよ、ダメな点は数多いがプライオリティは下がっている >おれがこのスレで作っても意味ない
は>>880も同様だな マウントしたがりのバカしか居ないスレですけど、それでもよかったら質問をどうぞ パラパラ漫画作って、動画に撮って再生すればいいんじゃね? 作ってるうちに楽しくなってつい作りこんでしまいました
https://www.axfc.net/u/3958012
変更点
・ランダム表示
・乱数生成
・(ほぼ)フルスクリーンモード(1920x1080、1600x900、1280x720、800x600の4種類の画面に対応)
・ユーザーインターフェースの強化
・デバッグを少々
最初に作ってほしいといっていた人の要望にかなってるかが心配 フルスクリーンならDirectXだろ、と思ったら、
Windows10だと色々面倒なのな。 Excelの起動画面、ドラクエでエンカウントしたみたいな感じにできないかな。
緑画面に白文字でExcelって、ちょっと地味じゃない? ID:pkuTd0pWだけど
やっぱり午前中はましだが午後は酒がだいぶ効いて
すまんな
まあ文字結合のお題はExcelの問題をコピペしたものだろう
これ関数とExcelの機能を使って解いた方が面白い >>881
cを作業列にして
結果をピボットテーブルを使って表示 質問です
同じブック、同じシート上にある
任意の二つのセル間を
セルで直線を引きたいと思っています
例えばA1セルとD4セルを指定したら
A1、B2、C3、D4のセルが黒く着色されるような
そんな感じです
どのようなロジックを組めば宜しいでしょうか? >>924
まず動作仕様を決める
1,指定の仕方をどうするか クリック Or 別セルで指定
2,複数回線を引くのか 取り消しは同じ指定で取り消すのか
3,クロスしたセルの色は
4,線の色はどの様に指定するのか
5,全てクリアーする処理は必要か? >>924
セルの色の指定方法は、マクロの記録でセルの色を変えて、マクロの記録の終了で確認してください >>924
何に使うのかが謎だ。
絵でも描くのかな? >>925
返答ありがとうございます
特にトリガーは定めていませんし
複数回引くことも考慮しなくていいです
こちらとしては
「二つのセル間にセルで線を引くこと」の
実際にどのセルが着色対象となるのかが
求められるロジックが必要となっています
>>926
ありがとうございます
ただ、上記しました通り
着色自体が焦点ではなく
どのセルが着色対象となるのかを
求めることができればなぁと考えています >>928
セルの位置情報から列の差が大きいか行の差が大きいかでループする側を決定します
ループする側は1増えるいく
その数に小さい側を大きい側で割って少数側を四捨五入したものが小さい側の増分でいいでしょう 追記 ループ変数は0から差分まで
列ぎょうとも 初期値に増分を足していく 列幅、行幅ともにまちまちだと考えるとマジメに座表計算がいりそうだ >>931
すまん、関係あるなそれをかんがえると確かに難しいが
実質的にその構造で線を引く意味あるのかな? >>931
所詮線はシェイプで引けばいいだけだからな
セルの色を変えることにどんな意味があるかが問題 >>935
セルにシェイプが掛かっているかはすぐ判定できるんだっけ?
できるならまあ簡単かな >>936
セルの色を変える仕様が実質的に意味あるかが疑問なだけ
意味ないもの検討する必要ないからな まあ、意味あることならいくらでも方法がある(各行列のプロパティから幅なんて取れるからな)けど
お題が意味ないこと検討する必要もない 皆さんありがとうございます
セルで線を引く質問をした者です
セル幅がまちまちのケースは
こちらも想定外でした
均等幅で求められれば良いと
考えていましたから
既に回答して頂いた方法で
試してみたいと思います
どうもありがとうございました 質問です
文字列のカラムと数値のカラムが混在する表
数値カラムは空欄セルもある
この表からセル値をコピーするとき、数値カラムでセルが空欄の時はコピー先を0にしたい
文字列カラムでセルが空欄の時はコピー先も空欄
タイトル名で判定するのはスマートじゃないと思って
セルや変数の仕様を使って上手くできないでしょうか >>941
これはVBAの質問ですか?
機能はExcelの質問だよ 数値カラムの空欄はそのまま空欄で
文字カラムの空欄を長さ0の文字列にしておけばセル参照で >>881
1が出てくる回数をそのまま行番号に使って、
1・2・3という数字を、そのまま列番号に使う。 質問です
C言語のFILEポインタをexternしているdllをvbaから呼び出すときにシグニチャーは何型ですか >>946
ごめん、勘違いしてた。
何とかできたけど、ものすごくダサい。
C列 =COUNTIF(INDIRECT("A1:A"&ROW()),A:A)
D列 =MATCH(ROW(),C:C,0)
E列 =LEFT(F:F&G:G&H:H&I:I&J:J&K:K,FIND("0",F:F&G:G&H:H&I:I&J:J&K:K)-1)
F列 =INDEX($1:$1048576,INDIRECT("D"&ROW())+COLUMN()-6,2)
G列以降 =IF(INDEX($1:$1048576,INDIRECT("D"&ROW())+COLUMN()-7,1)<=INDEX($1:$1048576,INDIRECT("D"&ROW())+COLUMN()-6,1),INDEX($1:$1048576,INDIRECT("D"&ROW())+COLUMN()-6,2),0)
E列が答えだけど、2016なら、ここはCONCATENATEで。 よろしくお願いします。
ある住所リストを宛名印刷するためのVBAを書きました。
印刷したときに、枠に収らないとまずいし、とはいえ町名の途中などで機械的に次の
行になるのもまずいので、途中、全角スペースがあったら次の行にする、という
ことを考えて、名簿リストを入力する係の人に「だいたい○文字目くらいで、市町村名あたりの
キリのいいところで全角スペースを入れておいてください」と頼んでおきました。
Jusho = sheets("名簿").cells.(rowcnt,2)
If InStr(Jusho, " ") Then
tmp = Split(Jusho, " ")
Jusho1 = tmp(0)
Jusho2 = tmp(1)
Else
Jusho1 = Jusho0
Jusho2 = " "
End If
sheets("印刷元").range("A1")=Jusho1
sheets("印刷元").range("A2")=Jusho2
sheets("印刷元").printout
こうやって、長い住所を2行に分けることに成功したのですが、
今になって、マンション名やらなんやらで、全角スペースがいくつもある場合があることがわかりました。
つまり、Jusho0に、2つ以上のスペースがある場合が出てきて、そうすると、tmp(2)やtmp(3)が
発生することなってしまい、印刷の住所が途切れてしまうことになりました。
私のVBAの書き方が悪かったのだと思います。
「1つ目のスペースで2つに分ける。2つ目以降のスペースは無視」というVBAを書きたいです。
どうすればよいでしょうか? >>881
Ruby で作った
require 'csv'
results = [ ]
# 空白区切りで、ヘッダー有り
options = { :headers => true, col_sep: " " }
# CSV 入力ファイルを、1行ずつ処理する
CSV.foreach( "input.csv", options ) do | row |
if row[ 0 ] == "1"
results.push row[ 1 ] # 要素の追加
else
results[ -1 ] += row[ 1 ] # 最終要素に文字列を連結
end
end
puts results >>950
tmp = Split(Jusho, " ", 2) >>950
Instrは検索文字が文字列の左から何文字目にあるかを返すよ
Instr(“東京都 渋谷区 ほげほげ町”, “ ”) は4が返ってくるのでそれでSplitする
ちなみに右から調べるInstrRevもある >>950
あと検索文字がない場合は0を返すから条件式で使うなら
Instr(Jusyo, “ ”) <> 0 Then にしといた方がいいかも
他の人が見たとき「?」になる >>948
やってみた
結果、E列
あ い
か き く
さ た ち
た ち
答えは以下が正しいのとG列の式を
H列以降に無限に張らなければいけないのが問題ある
他にも問題があるかもしれないが・・・
あい
かきく
さ
たち >>923
ここで、ヒントを出してるのに
作業列は1列で十分 フラッシュ演算のやりとり見てて思ったけど
文字にして答えを文字結合すればアルツハイマーテストに使えるんじゃね? >>956
すまん
無理にピボットテーブルや式でやらず
フィルターで列Aが1を表示でいいな >>950
住所印刷なら、郵便番号が有るだろう
郵便番号の住所変換ルーチンはある
住所は郵便番号と比較すべきで比較してエラーを出すべき
郵便番号に合致する部分を1行目、それ以外を2行目が良いだろ >>957
色々使えるだろうね
文字の表示位置を変えてタッチパネルでやるとか
応用範囲は広いがちゃんと全画面表示や文字の大きさ位
自動でできないとな、今時4Kモニターも出てるし・・・ >>950
limitオプションで回答は出てますが、実用的には長い住所の時は複数回改行も有り得るんではないでしょうか
またフォーマットが変わったときに全ての住所録の全角位置を調整するのが大変だと思われます
なので記入者には単純に単語毎にスペースを入れて貰って、適時自然な位置で改行するのはどうでしょうか >>961
運用でカバーできたら誰も苦労しないよね 一行の文字数を決めて、そこからInStrRevで最後のスペース位置を検索してLF挿入です
コード書いたんですが何故かブロックされます・・・ >郵便番号に合致する部分を1行目、それ以外を2行目が良いだろ
2行目があふれても、それは枠内で表示するだけで問題ないだろ
どうせ印刷はWordのあて名書きだろ2行目の表示エリアを広くしておけば問題ない 拙いですが折角書いたのでうpしました
https://ux.getuploader.com/dialogues_txt/download/129
>>965
エクセルだと思うし、表示エリアを広くで済むならそもそも改行不要なのでは・・・ 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) >>965
普通は郵便番号と住所は別カラムだろ
というか質問者は郵便番号の話してないから >>967
空想の世界で生きるのも人生
実態を考えるのも人生 好きにしてね
ちなみに、午後だからやばいかも >>966
見栄えがあるよな、企業が出すなら
すまないが午後になったのでテストはしてない >>961
うちのシステムだとテキストボックスが既に3つになってて一段目が市区町村まで、二段目が枝番まで、三段目が物件名と部屋番+様方、会社名とかって決まってる。 まあ、なんだな住所を2行にしたいなんてあて名書きだけだろ
それって、Wordのあて名書き印刷ぐらい
で、きれいに住所を分けるのは郵便番号に載っている住所で区切るんだよ
それ以外は長いマンション名あるけど適当に範囲内で打てばいいんだよ
今時郵便番号を管理しない住所録もないだろ
まあ、引きこもりにはわからないかもしれないが >>971
追記、登録する人にはこれで宛名出るからって言ってある。 >>971
お前の所への質問じゃないな
あと、分けて入力するフォームも結構あるが
無視されることも多いだろ
気にしているところは、まず郵便番号を聞くな >>950
「1つ目のスペースで2つに分ける。2つ目以降のスペースは無視」という解決ではなく
「分割が発生したら住所を2つに再結合する」という解決だけど
Sub test()
Dim tmp As Variant
Dim i As Integer
Dim jusho0 As String
Dim jusho1 As String
Dim jusho2 As String
jusho0 = Sheets("住所").Range("A1").Value '参照するセルは自分で書いてください
tmp = Split(jusho0, " ") '文字を分割して
If UBound(tmp) > 0 Then '分割が発生していたら再結合する
jusho1 = tmp(0)
For i = 1 To UBound(tmp)
jusho2 = jusho2 & tmp(i)
Next i
Else
jusho1 = jusho0 '分割が発生していなかったらそのまま代入する
jusho2 = " "
End If
Sheets("印刷元").Range("A1") = jusho1
Sheets("印刷元").Range("A2") = jusho2
End Sub
これでいけるはず >>976
>>952でいいですし、デリミタが潰れたままになってますよ >>976
もしSplit( )で分割数の制限ができなくて
> 「分割が発生したら住所を2つに再結合する」
としても
Sub test()
Dim tmp As Variant
Dim i As Integer
Dim jusho0 As String
Dim jusho1 As String
Dim jusho2 As String
jusho0 = Sheets("住所").Range("A1").Value '参照するセルは自分で書いてください
tmp = Split(jusho0, " ") '文字を分割して
jusho1 = tmp(0)
jusho2 = ""
For i = 1 To UBound(tmp)
jusho2 = jusho2 & tmp(i)
Next i
Sheets("印刷元").Range("A1") = jusho1
Sheets("印刷元").Range("A2") = jusho2
End Sub
でいいだろ
ちょっとトリッキーだけど
jusho1 = tmp(0)
tmp(0) = ""
jusho2 = Join(tmp, "")
ってやる手もあるな どこで質問していいのかわからないので、ここにお邪魔します
Jscript、 拡張子がjsのファイルですが、これでエクセルを操作するのですが、
複数のワークシートがあるxlsファイルを開いた状態で
var book = GetObject("C:\\file.xls");
var sheet = book.Worksheets( 1 );
sheet.cells( 2, 2 ).Select;
としたとき、1のワークシートを開いているときは問題ないのですが、他のワークシートを開いているときは
エラーになります。でも、
sheet.cells( 2,2 ) = 5
は問題なくできます
つまり、タブで対象となるワークシート以外の他のワークシートを選択しているとき、
代入はできるのに、選択ができないのです
選択をできる方法ってありますか >>979
セルをセレクトする前に、シートもセレクトすればいいよ あ、出来た。シートのセレクトってできたんですね。ありがとうございました コード書く画面を
背景黒、文字色白にするには
どうしますか? 依頼者ですがみました。ここまでやってくれるとは思わなかった、それぐらいの完成度の高いです。感謝です。
フラッシュ演算「のような」ツールがほしいニュアンスで言ったのですが、演算までやってくれるプラスアルファまでやってくれるとは思わなかったです。恐れ入りました。 >>881
まあ、Excelの関数や機能でやるのはスレ違だが
基本的にVBAでやるのは最終手段っと考えてるのであしからず
A1 B1から始めてるとして C1に入れる式は「=IF(A1>0,IF(A2>A1,B1&C2,B1),"")」
これをC列にコピーすれば、A列に1が入っているところに答えが入る
A列B列C列に、フィルターを設定して、A列の1のみを表示するだけ 連投すみません。
さらに要望なのですが、
要望その一
現状、横並びでフラッシュ表示しますが、縦並びに切り替えることはできます?
可能であれば対応いただきたいです。できたら、円並び、ランダム配置といったバリエーションも検討いただきたく。
要望その二
「問題セット」シートにて、登録した文字列の順序をボタン一つでランダムに入れ換えることは可能でしょうか?
可能であれば対応いただきたいです。
もともと登録した文字列は同一シート内の別の列に退避させてください。 >>987
直接メールでやれ
既にただの仕事依頼になっていてさすがに質問スレでやることじゃない >>988
いいじゃないかたくるしく考えるなよ
回答者が嫌じゃなければそれでいいよ 要望その二はわかりづらいと思うので、具体的には「きりん」を登録します。
これをランダムで文字を入れ換えて「んきり」といったイメージです。
「んきり」をみてばらばらの文字を自分が知っている既知の情報「きりん」に変換し、きりんをイメージする。
個人的な、ツールの用途として、左脳で文章をよまず、文章をぱっと見で右脳でビジュアルに思い描く右脳活性化のための訓練として扱いたいのです。
これができるようになると、本を読むとき、文章で読むより右脳でイメージでとらえながら読むので、速読が可能そしてイメージでみるので記憶に残りやすくなります。 こんちには みさなん おんげき ですか?
わしたは げんき です。
この ぶんょしう は いりぎす の ケブンッリジ だがいく の けゅきんう の けっか
にんんげ は もじ を にしんき する とき その さしいょ と さいご の もさじえ
あいてっれば じばんゅん は めくちちゃゃ でも ちんゃと よめる という けゅきんう に
もづいとて わざと もじの じんばゅん を いかれえて あまりす。
どでうす? ちんゃと よゃちめう でしょ?
ちんゃと よためら はのんう よしろく ---------上記はワッチョイ表示用(この行の後を1行目から )--------
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑の二行はワッチョイつけ忘れ防止用の予備です。 立てた時点で1行消耗します
スレを立てる方は本文の文頭に上記行を三行重ねて立てて下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part58
https://mevius.5ch.net/test/read.cgi/tech/1542577644/
---------上記はワッチョイ表示用(この行の前)---------
私は新参者なのでスレたては控えさせていただきますが
ワッチョイを入れることも検討してください スレ最後の質問。
あるファイルに、
on error goto err
******
exit sub
err:
msgbox err.description
end sub
↑
こういうコードをたくさん書いてきました。
しかし、エラーが出たときに、どのプロシージャで発生したのか知りたくなり、
msgbox err.description & このプロシージャ名
に変更したくなりました。
「このプロシージャ名」を書く方法ってあるのでしょうか? 乗りかかった船だし、自分自身も勉強になっているのでこの案件は、できるところまでやりたいと思います。
>>987
要望その1
縦並び = 今でも(一応)可能。セルの書式設定からB2の書式で「配置タブ」の「方向」で縦を選んでみてください。
文字の大きさとかも合わせて調整したら画面に収まりきると思います。後はセルの大きさも調整してみて。
ランダム配置 = スレの上のほうで案が出てたけどオートシェイプとかワードアートでできるかもしれないしできないかもしれない。あんま期待しないで。
円並び = 自分にはできません。
総じて、要望その1はあまり自信なしです!!!
要望その2
おそらく可能。まずはこっちから手をつけます。
時間がかかると思うのでのんびり待ってください。
>>922
922さんが想定された使い方かどうかはわかりませんが、使い方が解った気がします。
ヒントありがとうございます。 >>997
要望その二ができれば、要望その一のランダム配置は解決済みでよいです。
本は横書きと縦書きな二種類しかないので、円並びはあまり意味がないかなとおもうので対応は不要です。縦並びの実現はセルの書式設定で変えることができるので、実質要望その二だけになります。
余談ですが、Androidアプリでフラッシュカードというフリーのアプリを一週間前から使ってましたが、スマホでデータ登録は面倒、フラッシュ速度最大にしても0.5秒くらい望んでるものではないのでアンインストールしました。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 82日 14時間 28分 22秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。