Excel総合相談所 132
■ このスレッドは過去ログ倉庫に格納されています
▼━質問テンプレ (出来れば使ってね) ━━━ 【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可・否 ▼━関連スレ━━━━━━━━━━━━ 前スレ Excel総合相談所 131 https://find.5ch.net/search?q=excel Excel VBA 質問スレ Part51(1000到達済み) https://find.5ch.net/search?q=excel+vba 【質問不可】Excel総合相談所スレの雑談・議論スレ4 https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80
>>735 出力されたデータはどこかに保存されるわけではなく、そのまま開いた状態。 既に開いているエクセルのファイル(ファイル名不明)を別のエクセルで開いたブックからvbaで取得する方法があればと。 カレンダーって言うと職場の男は昔ヤクザやってたらしいが 悪い元先輩に「お前、俺等が出演してるカレンダー買えよ!」と言われ 一つ四万円でも無理やり買わされたって言ってたな 買ったのを見せてもらったがヤクザ達が刺青出してふんどしになり 海岸でポーズ決めてる写真ばっかりでクソワラタw >>736 for eachで開いてるファイルを全部回す。 指定の形式に該当するファイルをコピペ。 >>736 VBAでWorkbooksコレクションオブジェクトというのを使えば、今開いているブックの一覧を簡単に調べることができます あとは、セルの内容とかシート名などを頼りに、目的のブックを機械的に見つける方法があるかどうかですね まあ、シート1の名前とかA1の値とか。なんか識別はできるだろう もう1つの方法。自分だけしか使わない自分用なら Personalにマクロ作って、開いた状態で実行して結果を別のBookにするとかでもいい 実行する時は「ペルソナー!」って叫ぶ 【1 OSの種類 .】 Windows7Pro 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 はい(マクロをボタンに登録して使うくらい) 【4 VBAでの回答の可否】 可 vlookup参照をVBAで最終行まで繰り返し処理したいです 具体的には、 A4からA列の一番最後の行を調べて C4=VLOOKUP(A4,H4:J100,3,FALSE) をC列でA列の最後の行まで繰り返したい H4:J100の範囲はH4からH列の一番最後の行のJ列までにしたい 前提としてA列とH列は途中に空欄ありません H列に無くてA列にある値があります。その場合N/Aではなく空欄にしたいです >>742 です 文章では分かりにくいのでイメージのスクショを貼ります 右の古い客先一覧のJ列を左の新しい客先一覧のC列に転記したいのです https://i.imgur.com/BsBGDg1.jpg >>742 Sub Macro3() Dim rowA As Long rowA = Range("A4").End(xlDown).Row Dim rowH As Long rowH = Range("H4").End(xlDown).Row Range("C4").Formula = "=IFERROR(VLOOKUP(A4, H$4:J$" & rowH & ", 3, FALSE), ""\(^o^)/"")" Range("C4").Copy Range("C5:C" & rowA) End Sub て、マクロにして毎回変わる行数へ使えるようにしたいのでは無かったのかw 1回で良ければ$付けてコピーすりゃ良い >>744-745 >>742 です 早速ありがごうございます 希望通りでした 古い客先一覧から客先の増えた新しい客先一覧に更新するのに 列で古い一覧で決まってる担当の列を新しい一覧に転記したかったです なので毎回行が増えたり減ることもあります ところで古い客先一覧で担当の列が空欄だった時、 新しい一覧に転記されて空欄になるのと0になるのがありますが なぜか分かりますでしょうか? 古い一覧に白色で見えない0が入力されているのかと思いましたが 本当に空欄でした お世話になっております ご質問の問題について調査を行いましたところ H列にありj列に無いケースについては要件定義に明記されていなかった事から、 想定外のケースであることがわかりましたが 変更およびテストの実施はリリースに間に合わない恐れがある為 しばらくは運用にて対処いただけませんでしょうか? ご理解ご協力の程宜しくお願い申し上げます >>747 お世話になっております 手入力でC列にVLOOKUP関数を入力コピペしても同じ結果になりました J列に空欄があるとC列はそのまま空欄になると思うのですが C列のVLOOKUPの結果が空欄になる時と0になる時があるのは何が原因でしょうか データに問題があると思うので改善したいと思います >>734 自分が良く使う方法はインプットボックスでセルを指定してそのrangeオブジェクトからparentでワークシートとワークブックを変数にセット >>747 お世話になっております >>746 ですが自決しましたので下記ご報告申し上げます Range("C4").Formula = "=IFERROR(VLOOKUP(A4, H$4:J$" & rowH & ", 3, FALSE), ""\(^o^)/"")" 以上部分を Range("C4").Formula = "=IFERROR(VLOOKUP(A4, H$4:J$" & rowH & ", 3, FALSE)&””””, ""\(^o^)/"")" に修正してJ列の空欄はC列に空欄で返すようにできました ただVLOOKUPで参照先が空欄だった時スペースも入力されていないにも関わらず 0になる時と空欄になる時があるのが謎です 後学の為ご存じでしたらご教示いただけませんでしょうか お忙しいところお手数ですがよろしくお願い申し上げます 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 初心者です。 工事毎作成する複数のシート(※1)の数値をデータベース用の他ブックのシートに工事毎に転記しています。 現在は工事が発生する事に保存してある(※1)原紙を該当工事用に更新し、保存後データベースにハイパーリンクを設定していますが、 いちいちハイパーリンクの設定をするのが大変なので、一連の流れを自動化は出来ませんか? できるよ 要は単票フォームのデータをテーブルに保存/テーブルから読み出しできるようにしたいんだろ Access使えない環境だとそういうのはときどきつくったりする VBA必須だけどな >>756 3が読めないのかおまえは だからみんな出来ないって言ってんだよ バカだろ できるかできないかでいえばできる ただしVBA使用が条件 別におかしくはない このスレではひとりのことをみんなっていうのかな このvbaが使えるかって設問、そろそろ見直したほうがいいかもね ・本人がvba使えるかどうか こんなことどうでもよくて、覚えろって話 ・職場環境的に絶対に使えない じゃあ仕方ないね となる 出来るかでいえば、VBAでペンタゴンハッキングできる人も居るかもしれないが とりあえず、VBA無しの範囲=数式とリボンの中のものとして 固定のデータソースから値を取ってきて計算まで 処理 となるとマクロコピペぐらい要るかなあ。 使える使えないってのは、本人が、の他に、環境が(会社が')、ソフトがって意味もあると思う 3.より4.でしょ ちゃんとテンプレに従って > 【4 VBAでの回答の可否】 否 って書いてあるのにVBA必須の回答するとか頭おかしい そもそもVBA使った回答なんかしてないだろう どこにVBA記述してるんだ できるって書くことすらだめなのか なんなのこのスレ VBA毛嫌いしてるヤツの気持ちもわかってほしい コンプレックスの裏返しさ 少なくとも俺はバカとか頭おかしいとは書いてない それはいいのか? >>768 小学生並みの煽りだな バカ 頭おかしい 文盲←New! VBA可で質問しているのに自己解決出来ないなら使わない方が良いんじゃね?と思う 職場なりで多数の人が使う場合は特に オフィス2019って一般人はいつ買えるんですか? 今後数週間のうちにリリースと、1ヶ月前に見た気がするんですが。 あと、excelしか使わないんですが、オフィス2019発売の際、バラ売りしてくれますか? それともバラ売りは少し発売日が遅れる、もしくはバラ売り自体やらないんでしょうか? 会社で自分以外が使うブックには基本VBAは入れないな。 あいつらファイル参照や自動作表どころか単純な関数すら別のブックにシートコピーとかやって効かなくして壊れたと騒ぐ。 vba内にデータを持たせたり 参照しているシートはロックしたり隠したり手段はあるが まぁ作る側は面倒だよな フールプルーフの良い練習になるから、あまり不満は無いかな Office2019は海外Amazonとかだともう売ってるんだよな 日本語版はまだらしい。いつになるかは分からなくてすまん ただ、2019の新機能はOffice365にしてればアップデートでもう反映されてる >>775 逆にそういうのをVBAで防ぐこともできるじゃん >>775 マクロはロックしてます。公開後の修正はめんどいですが。 2019使ってるけど、正直そこまで・・・感 OCRもグダグダだし、SORT関数もそもそもVBAでさんざんやってきたこと まぁ2019がデフォの世代はすごく生産性が高いだろうね 【1 OSの種類 .】 すみません、分かりません… 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 分かる方いたら教えてください。 例 A1セル:10 B1セル:15 C1セル:5 であったときに、 @A1からC1の間で、一番大きい数のセルを選んでください。 AA1が1番大きかった場合はAを、B1が1番大きかった場合はBを、C1が1番大きかった場合はCを返してください。 この2つの関数を組み合わせたいのですが、教えて頂けませんか? よろしくお願いします。 excelの差分ツール教えて いままでAiperDiffexを便利に使ってたんだけど、 Win 10にしたら調子悪くなってしまった スクロールすると波打つ感じ >>783 どれがいいのかわからんかった =MAX(A1:C1) =MATCH(MAX(A1:C1),A1:C1,0) =MID("ABC",MATCH(MAX(A1:C1),A1:C1,0),1) >>785 、787 785の方の3つめの式で解決しました! ありがとうございました!助かりました!! 787の方も回答下さりありがとうござきました! >>785 、787 785の方の3つめの式で解決しました! ありがとうございました!助かりました!! 787の方も回答下さりありがとうござきました! 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2010 【4 VBAでの回答の可否】 可 シートにテーブルTable1がありまして列3と列5だけをCSVで出力したいのですが よろしくおねがいします。 行数は日々変動いたします。 >>790 順番は? C1,C2,C3 改行 E1,E2,E3 改行 でいいの? >>791 具体的にデータを作りました テーブル1(Table1) 番号, 都市, 名前, クラス, 判定 1002, 東京, 山本, A組, o 1003, 千葉, 戸田, B組, o 1005, 東京, 鈴木, A組, x ・ ・ これを下のようにCSVで出力です 名前, 判定 改行 山本, o 改行 戸田, o 改行 鈴木, x 改行 アドレスではなくテーブル名と列名を使った構造化参照での回答がありがたいです 自分なら別ブックにデータを抜き出して それをCSVで保存する 別シートに列コピーを2回やってCSVで保存だな こんな単純な作業、VBAとかで自動化するまでもないと思うけど >>794 これと同じ操作がテーブル違い列違いで30テーブルくらいあるんですよ そして最低週1回以上のCSVデータの更新が必要でして テーブルをどうやって指定するかとか、csvファイルの名前や保存場所をどうするかとか、色々ある。 inputboxで指定するのか、シートにテーブルは1つと決まっていてそれを自動で取得するのかとか。 自分で作らないと思うようにできなさそう。 データの抜き出しはコピペでもいいしピボットでもいいしvbaでもいいし 好きにやればいいと思う 【1 OSの種類 .】 Windows** 7 【2 Excelのバージョン 】 Excel** 365(体験版みたいなやつ) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 今まで24型モニタDPI=100%で印刷していたのを 27型モニタDPI=117%で印刷しようとしたところ、印刷範囲がずれてました。 原因はDPIみたいで、最初に作ったのがDPI=100ならば、それが基準になるので 新しい環境に変えてもDPI=100%しなければならないとの事で これを踏まえての質問があります。 DPI=100%以外の数値でも、印刷範囲をずれなくする方法を 液晶モニタを変える 解像度を変える 以外であれば教えてください 1年に十数ファイルも印刷するので、特定のファイルにのみ効果を及ぼす方法は駄目です。一度設定すると今あるファイルは勿論、今後作成するファイルにも 影響する方法が望ましいです。 Windows10にする Excel2019にする 特定のシェアウェア フリーウェアを導入する等、あらゆる方法をOKとします。 >>790 Sub TEMP() Dim TBL As ListObject Dim RowClient As ListRow Set TBL = Worksheets("Sheet1").ListObjects("Table1") Open "D:\TEMP.CSV" For Output As #1 Print #1, TBL.HeaderRowRange(3) & "," & TBL.HeaderRowRange(5) For Each RowClient In TBL.ListRows Print #1, RowClient.Range(3) & "," & RowClient.Range(5) Next Close #1 End Sub >>799 印刷範囲はずれるものと思っておいたほうが良い 個人的には、vbaで改ページ合わせるしか無いと思ってる >>793 >>800 ありがとうございます いただいた情報を参考にしなが自分なりに作成してみます >>790 >>795 について 全シートの3・5列をCSVで出す。より 全シートを1つにまとめたシートかCSVを作る マクロを作っておいたほうが将来的に楽よ シート名,行番号,A列,B列・・ の1つにまとまったものがあれば 今回の要望も手作業のコピペ+出力で足りる可能性がある >>799 ディスプレイの設定が印刷に関わる? Excelのバージョン、OS、プリンタとプリンタドライバは同じなのかな。 印刷範囲の設定がちがちにして、余白に余裕があれば、PC変えても大概ズレないが 環境により印刷可能サイズが狭くなるので、ギリギリの%指定で作ってるとたまにはみ出す A. もし印刷だけの資料なら、PDFにしてしまったほうが確実 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2013 【3 VBAが使えるか .】 いいえ(マクロの記録程度なら可) 【4 VBAでの回答の可否】 可能であれば使わない方法で、使わなければ解決しないようであれば使った回答をお願いします。 直撮りで申し訳ないのですが、画像のような表で、17行目の@〜Eに、空白を除き、各行ごとに比較して、各列(H31〜H26)に最小値が入っている個数をカウントしたいです。 例えば、 @は10行目の1908と16行目の1913の2個が最小値なので「2」 Aは14行目の1805が最小値なので「1」 Bは最小値が無いので「0」 と表示させたいです。 COUNTIFやMINを使ってやってみたのですが、うまく行きません。ご教授よろしくお願いします。 https://i.imgur.com/jd1K1JD.jpg >>805 追記 たとえば@に入る関数を示していただければ、A〜Eについては引数を変える程度はできますので、1つ例として挙げていただくだけで結構です。 よろしくお願いします。 =if(SMALL(a2:h2,COUNTIF (a2:h2,"")+1)=a2,1,0)+if・・・ 別シートで、最小値かどうかを1,0で保持する そこの縦で1のカウントをとる Sheet2のA2に =IF(A2=MIN($A2:$H2),1,0) で票の範囲全部にコピー @〜には=COUNTIF(A$1:A16,1) いっぱいシートがあったり、行数がちょくちょく変わるのであれば。。。困ったな >>805 G列に最小値を入れて配列数式で計算するのはどうでしょう? >>809 具体的に数式書くと =sum(if(A2:A16=$G$2:$G$16,1,0)) これを配列数式で入力 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2019 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 2019から搭載されたideasって機能が見当たらないのですが、 表示させるにはなにか操作が必要なのでしょうか? https://i.imgur.com/exstLyf.png shareの下辺りに出ると思うのですが >>811 >>2019 から搭載されたideasって機能が見当たらないのですが、 2019から搭載??? Excel のアイデア(Excel for Office 365) https://support.office.com/ja-jp/article/excel- のアイデア-3223aab8-f543-4fda-85ed-76bb0295ffc4 AIとか搭載されたのか、知らなかった。 そのうち「先月と同じ報告書」って入力したら同様の書類全部作ってくれるようになるな >>801 えー マイクロソフトは何年も前から仕様です で済ませてるし 全然改善しようしないですよね。VBAはよく判らない>< >>804 液晶モニタのみ買い換えたんですよ 他は同じです 毎日の売り上げを基調してるんで、pdfオンリーではないです>< Excelで質問です A1に数字の1が入力されたら B2に300を入力するという 関数を教えてください >>812-813 365の機能でしたか、残念 2019で搭載!と言ってるブログが多くて信じてしまいました。試したかったなぁ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 はい(コピペして一部編集して使うくらいのレベル) 【4 VBAでの回答の可否】 可 表の構成が同じSheet1とSheet1(1)があります 最終行はSheet1とSheet1(1)で違います A列をA5から順番に1つ1つ下に見てA列が一致するB列以降をSheet1(1)からSheet1に B列以降の列を値で貼り付けしたいです B列からどこまでコピペするかは変えるかもしれないので簡単に変えられるようにしておきたいです 要はvlookupのようなことがしたいですが vlookupだと式を1列ずつコピーして値で貼り付けになり時間かかるので 値でいきなり貼り付けたいです >>819 Sub 探すで() Dim Y1 As Long Dim Y2 As Long Dim X As Long Dim r As Range Const START_ROW As Long = 5 Const COPY_MAX_COL As Long = 20 On Error GoTo eH Application.ScreenUpdating = False For Y1 = START_ROW To Sheet1.Cells(START_ROW, 1).End(xlDown).Row '、空白でストップ Set r = Sheet2.Columns(1).Find(Sheet1.Cells(Y1, 1).Value, , , xlWhole) 'A列で探す If Not (r Is Nothing) Then Y2 = r.Row Sheet2.Range(Sheet2.Cells(Y2, 2), Sheet2.Cells(Y2, COPY_MAX_COL)).Copy Sheet1.Cells(Y1, 2).PasteSpecial xlPasteValues End If Next Y1 eH: Application.ScreenUpdating = True End Sub sheet2 = Sheet1(1) で。 あ、不細工やらかしてるけど、動く動く。 >>820-821 できました! アレンジして使いたいと思いますが質問あります Const START_ROW As Long = 5は5行目から須田とかと思うのですが、 Const COPY_MAX_COL As Long = 20は横幅は20列がコピーするMAXという意味でしょうか? 塗りつぶした色付きでコピーすることできるでしょうか? シートAに シートBのB列からシートAのAB9と同じ文字の行を探し シートBのその行のCQ列の文字をシートAに入力したいのですか その計算式を =IF(ISERROR(VLOOKUP($AB$9,シートB!$B:$CQ,85,FALSE)),"",IF(VLOOKUP($AB$ 9,シートB!$B:$CQ,85,FALSE)="","",VLOOKUP($AB$9,シートB!$B:$CQ,85,FALSE))) としたのですが なぜか CQではなくCH列の文字を入力します シートAに シートBのB列からシートAのAB9と同じ文字の行を探し シートBのその行のCQ列の文字をシートAに入力したいのですか その計算式を教えてください 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) >>823 =IFERROR(VLOOKUP($AB$9,シートB!$B:$CQ,94,FALSE),"") >>824 >>825 ありがとうございます 解決できました 列番号ところがポイントでした ここを範囲を指していると勘違いしてました =L26*U26が L26とU26の値が無いの場合は ♯VALUE! になってしまいます これを♯VALUE!ではなく空白にするには =L26*U26をどうすれば良いですか? >>822 値でコピーしたいというので値コピーだけにしちゃった。 VLOOKUPにならないようにってことね 全コピーでOKなら 中央を差し替え。 If Not (r Is Nothing) Then Y2 = r.Row Sheet2.Range(Sheet2.Cells(Y2, 2), Sheet2.Cells(Y2, COPY_MAX_COL)).Copy Sheet1.Cells(Y1, 2) End If >>830 できました! ありがとうございます、完璧です >>805 既に同じような方法が書かれておりますが、 G列に各行の最小値をMIN関数で求めておき、 まる1=SUMPRODUCT((A2:A16=$G2:$G16)*1) そんな便利な関数が、勉強になりました。サムあなどってた SUMPRODUCTは重い たくさんあると目に見えて遅くなる SHIFT + SPACE (行選択) て突然効かなくなるけど何で? テンプレ無視ですみません ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる