Excel総合相談所 135
■ このスレッドは過去ログ倉庫に格納されています
【1 OSの種類 .】 Windows** 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可・否 ▼━関連スレ━━━━━━━━━━━━ 前スレ Excel総合相談所 https://find.5ch.net/search?q=excel Excel VBA 質問スレ https://find.5ch.net/search?q=excel+vba 【質問不可】Excel総合相談所スレの雑談・議論スレ https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80 >>797 VBAスレの方で答え書いてくれてる人いなかった?ちゃんとは見てないけどなんか親切に書いてたよ >>799 ありがとうございます。確かに見直したら教えてくれてる方一人いましたね。 ただこちらで教えてくださった方の答えと照らし合わせたら食い違ってる答えが多かったのと スレの流れからして嘘を教えてるんじゃないか?という判断であちらは中断しました >嘘を教えてるんじゃないか?という判断 すごい・・・ 高校生だろ? もしかして、そもそも躓いているところが違うんじゃないの? 行と列の縦横がわからないとか、単価の意味が分からないとか? >>800 何問か見たけどあってそうだったよ 君のレベルじゃ完璧な回答の方がおかしいから安心して写せ そうだよ。 そもそも100点じゃないと駄目のかそれ。 vbaスレ見て分かった、エクセルを使った事が無いらしい まぁ高校なら出席日数足りてりゃ卒業できるし、補修ヤリたくなかっただけだろ 試験でも小論文でもないけど 期日までに全て正解した状態で完了しないと出席足りてても単位にならないみたいなので なので困ってます どんな学校だそれwwww 誰かに嘘を吹き込まれてないか!? 小学校6年生になったら、機械式の物凄く痛い注射をされます、みたいなさ。 >>807 期日は7/24です。一見長いように見えますが提出してから返却するまでに時間がかかるので 1,2回しか提出チャンスはないです。だからなるべく一回で済ませたいと此処の方に頼ってます だったら尚更嘘教えられてるかもって疑心暗鬼になりながら回答をもらうより自分で調べたほうが良いんじゃないの 凄い高校だなそりゃ。 計算式を入れて送信ボタン押すと、生徒の回答がVBAで自動集計されるとか、そういうの無いのかよ。 エクセルの問題を紙で出題って、昭和の発想だぞ。 まぁ脱線してるので>>778 に解答いただけると助かります(´・ω・`) >>809 余裕ありそうに見えるけどもしかして定時制とか? 先生に分からないところ質問した方がいいと思うよ 自分も高校の時情報処理テスト落としたら赤点って言われたけど頑張ってる姿勢を見せたら免除された 上手く立ち回りな EXCEL使ってて気づいたんだけど、 フォーメーションZって、あれ絶対多重スクロールがやりたかっただけだよな。 意味はないけど、面白そうだからVBAでやってみたかったって感じによく似てる。 ここまで教えてもらえる余地がない中、 それでもVBAスレで教えてくれた善人を疑い なおも頼り続ける心臓の強さよ D3セルの数値が,A1〜A10の範囲に存在し,かつそのA列セル右隣のB列セルが0であった場合に色を付ける という条件付き書籍ではどのような数式を書けばいいのでしょうか? ↓では駄目なようです。 =offset(countif($A$1:$A$10,$D$3),0,1)=0 >>816 732-737あたりでこのスレの方が解答してくれた答えと一部違ってますが VBAのスレの方が正しいのですか? >>818 =SUMPRODUCT((A1:A10=D3)*(B1:B10=0)*(B1:B10<>""))>0 相手するのが面倒になったからって嘘教えるなよww 流石に高校生相手にかわいそうだろ 最近Excelしかやってなくてもともとパソコン関連みたいなの苦手です メッセージボックスをOK押さなくても消えるようにWindowsのスプリクト使って組んでそれはうまくいったんですが そういうVBAでやりきれないことをやるものって何を勉強したら使えるようになるんでしょうか? Excelのエキスパートまで取り終わったからaccess始めたけど面白くなくて やっぱりExcelに役立つものやりたいなと思ってます >>823 ほかのアプリまで思い通りに操作したかったら、最終的には自分でアプリを作るのが確実 Visual Studioを覚えると捗るよ >>824 アプリを作るって発想がなかったけどそうですね バーコード作るのとか利用してるけどそっち作ればいいのか ちょっと検討してみます ありがとうございます >>821 できました。どうもありがとうございます。助かりました 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2013 Word2013 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可(優しめでお願いします) エクセルにある複数のシートのセルの値を読み込んでワードで文書をつくりたい。 エクセルとワードのデータ連携は、「差し込み印刷」の作成と近いのだけど、 「差し込み印刷」はエクセルの行データから、次々にラベル欄を作っているのに対して 私がやりたいのは、複数のシートから複数のセルのテキストデータを個別に読み込んで 1枚のワード文書を作成させたい。 「ワード エクセルデータ フィールド」で検索しても「差し込み印刷」の方法しか見当たらない。 何か良い方法。参考になるサイトありますでしょうか? 「複数のシートから複数のセルのテキストデータを使って、1枚のワード文書を作りたい」 ↑説明として雑すぎる データベースとレポートの関係に近く見えるので、一般的にはAccessとかのDBツールの範疇 あくまでWordにこだわるならVBAでゴリゴリ処理を作成するしかないだろう >>829 Excelに各シートにどういう形式でデータがあるか具体的に書かないとアドバイスできないな 最後のWord文書が定型で、データを埋め込む場所が固定なら、 複数シートのデータを一つのシートにまとめるマクロ組んで差し込みにした方が簡単じゃないかな ありがとうございます。 抽出するエクセルのセルデータの数が、200件ほどあって 列ごとに一つのデータがまとまっているわけでないです。 「差し込み印刷」みたいな、列ごとにデータをまとめてラベルを印刷するわけでないので、 もしかしたら便利な方法があるかなあと思いました。 >データベースとレポートの関係に近く見えるので、一般的にはAccessとかのDBツールの範疇 >あくまでWordにこだわるならVBAでゴリゴリ処理を作成するしかないだろう まさにそのヒントが欲しかったです。VBAで何とかしてみます。 ありがとうございます。 すいません。。 × 「差し込み印刷」みたいな、列ごとにデータをまとめてラベルを印刷するわけでないので、 ○ 「差し込み印刷」みたいな、行ごとにデータをまとめてラベルを印刷するわけでないので、 >>831 ありがとうございます。抽出するセルの数が多すぎて、 具体的に説明するにはちょっと時間がかかるのですいません。 セルのデータ自体はただのテキストデータです。 >>832 >最後のWord文書が定型で、データを埋め込む場所が固定なら、 >複数シートのデータを一つのシートにまとめるマクロ組んで差し込みにした方が簡単じゃないかな 私もそう思いました。ありがとうございます! 取り急ぎなのですが、monthProgramiというシートのオブジェクトにある、B列2行目から値がある場合、sという文字列オブジェクトに値を加えようとするループです。 VBAは久しぶりすぎて、戸惑ってます。 :::::::::::::::::::::::::: monthProgramiというシートオブジェクト B列 (B1)週間テーマ (B2)読む・書く (B3)対人関係 (B4)家事 (B5)#N/A :::::::::::::::::::::::::: VBAを実行すると 「読む・書く,対人関係,家事」 と出力されればOKです。 :::::::::::::::::::::::::: こう書いてみましたが、、どこが悪いでしょうか? Sub プログラム結合版() Dim i As Long Dim s As String i = 2 Do While Cells(i, 2) <> "" _ s += monthProgram.Cells(i,2).Value _ s += "," _ i += 1 Loop Debug.Print (s) End Sub >>835 Excelのセルに入った大量の文章は、メモ帳経由でコピペすれば単なるテキストに変換されるよ Excelでコピー メモ帳にペースト メモ帳でコピー Wordにペースト こんだけの簡単な作業 すいません。 × monthProgrami ○ monthProgram です。。。 >>837 ありがとうございます。 単にコピペするのでなくて、必要なセルだけを抽出して、Wordファイルを完成させるのです。。 >>836 Sub プログラム結合版() Dim i As Long Dim s As String i = 2 Do While Cells(i, 2) <> "" And Not IsError(Cells(i, 2).Value) s = s + Worksheets("monthProgram").Cells(i, 2).Value s = s + "," i = i + 1 Loop s = Left(s, Len(s) - 1) Debug.Print (s) End Sub >>840 ありがとうございます。 「オブジェクトが有効範囲にありません」というエラーが返ってきます。 オブジェクト名は正しいはずなのですが、、 コードの問題でなく、何かのエクセルの環境ですよね。 自己解決しました >>840 のコードを次のように変更したら正しく出力されました!!! >>840 さんありがとうございました。 s = s + Worksheets("monthProgram").Cells(i, 2).Value ↓ s = s + monthProgram.Cells(i, 2).Value Doの行にもCellsが2つあるけどオブジェクト名を省略したらまずいのでは 度々すいません。先のものを発展させて、次のようにエクセルデータがあります A B C 1 日程 週間テーマ 2 12月2日〜 読む・書く 作文 3 12月9日〜 対人関係 会話のマナー 4 12月16日〜 家事 料理 5 6 7 8 作成年度 9 2018 10 作成月 11 12 :::::::::::::::::::::::::::::::::::下のように出力したい::::::::::::::::::::::::::::::::::: 【2018年度プログラム結合版、プログラム表紙、カリキュラム】 2018年度12月 2018年12月 [大テーマ]読む・書く,対人関係,家事 [小テーマ] 作文, 会話のマナー,料理 :::::::::::::::::::::::::::::::::::作ったソース::::::::::::::::::::::::::::::::::: Sub プログラム結合版() Dim i As Long Dim h As String Dim s As String Dim yyyy As String Dim mm As String yyyy = Str(monthProgram.Cells(9, 1).Value) mm = Str(monthProgram.Cells(11, 1).Value) h = "【" + yyyy + "年度プログラム結合版、プログラム表紙、カリキュラム】" s = yyyy + "年度" + mm + "月" + yyyy + "年" + mm + " 月[大テーマ]" i = 2 Do While Cells(i, 2) <> "" And Not IsError(monthProgram.Cells(i, 2).Value) s = s + monthProgram.Cells(i, 2).Value s = s + "," i = i + 1 Loop s = Left(s, Len(s) - 1) s = s + "[小テーマ]" i = 2 Do While Cells(i, 3) <> "" And Not IsError(monthProgram.Cells(i, 3).Value) s = s + monthProgram.Cells(i, 3).Value s = s + "," i = i + 1 Loop s = Left(s, Len(s) - 1) Debug.Print (h) Debug.Print (s) End Sub 動きません。何がわるいでしょうか?? あ、TABが効かないのかあ。これでわかるのかな。。 -, A, B, C, 1, 日程, 週間テーマ, 2, 12月2日〜, 読む・書く, 作文, 3, 12月9日〜, 対人関係, 会話のマナー, 4, 12月16日〜, 家事, 料理, 5, 6, 7, 8, 作成年度, 9, 2018, 10, 作成月, 11, 12, 詳しく見てないけどyyyy=の行で止まるんじゃないか monthProgram. となってるとこworksheet("monthProgram").cells(〜 では? シート名が何か分からんけども >849さん ありがとうございます。 実際のエクセルでのワークシート名は「学期別カリキュラム」です。なので指摘どおり、 yyyy = Str(monthProgram.Cells(9,1).Value) ↓ yyyy = Str("Worksheet("学期別カリキュラム").Cells(9,1).Value) と記述してみますと、コンパイルエラーが出てしまいます。 yyyy = Str(monthProgram.Cells(9,1).Value) だと、エラーも出力もないです。。 VBAは一筋縄ではいけないですねえええ。。 失礼しました。 間違えてました、以下のとおりだとエラーはでません。 × yyyy = Str("Worksheet("学期別カリキュラム").Cells(9,1).Value) ○ yyyy = Str("Worksheets("学期別カリキュラム").Cells(9,1).Value) ただ、エラーも出ませんが、出力もでません。。。 >>852 まだ書き間違いしてる 変な位置にダブルクォートが入ってるから、それでもエラーが出るはず それはともかくStrを外してみ yyyy = Worksheets("学期別カリキュラム").Cells(9,1).Value >>853 できた!!!! ありがとうございます。 Strが問題だったのかなあ。 ご報告。。 ワークシートの書き方については、どちらでも行けました。 ○ yyyy = Worksheets("学期別カリキュラム").Cells(9,1).Value yyyy = monthProgram.Cells(9, 1).Value Str()がダメだったみたいです。 × yyyy = Str(Worksheet("学期別カリキュラム").Cells(11, 1).Value) yyyy = Str(monthProgram.Cells(9, 1).Value) 皆さん。ありがとうございました。よい勉強をさせていただきました。 ダウンロードしてないからどんなデータが入ってるか確認してないけど、 Strを使って何も表示されないんだったら、数字じゃないデータが入ってんだから消すのが手っ取り早い CStrを使っても同じこと 式の途中ならともかく、出力の直前でStrなんか使う必要ない 機能とか意味がわかってないだけでは 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2013 Word2013 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可(優しめでお願いします) セルにフォームコントロールで「チェックボックス」を張り付けたのですが、 セルのアドレスを指定して、チェックしている名前を取得できますか? 例えば A3 ■鹿児島 □宮崎 ■大分 □佐賀 A4 □鹿児島 □宮崎 ■大分 □佐賀 A3の「鹿児島」、「大分」にチェック、A4で「大分」のみにチェック してあったとして、 A3のセルのチェックを調べて「鹿児島」「大分」が返ってくる A4のセルのチェックを調べて「大分」が返ってくる のようなVBAの命令文があれば教えてください。 ActiveXコントロールならできますが フォームコントロールはセルとリンクさせてそれを取得するしかできないんじゃないかな >>860 何だっけな。 一番近い位置にあるセルを取得する関数か何かがあったんだが、 思い出せない。 いや、その前に、チェックボックスに鹿児島って書いちゃダメなんか。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 エクセルに挿入した画像の下にあるセルに数値を入力する方法はありますか? 具体的は測定器が5個写っている画像があって、測定器の数値を表示する部分のセルに数値を入力したいです データ1は測定器A、Cの測定値を元に算出、データ2は測定器B、Dの測定値を元に算出・・・ といった感じの作業を電卓や暗算で行っていましたが、Win7機の入れ替えで端末が余ったので管理図置き場に設置しました 一応は画像の挿入を無しに測定器A、B、C、D、Eの測定値を入力して欲しいデータを表示させるようにはしましたが、 折角だから見たまんまで入力すればもっと分かりやすいのでは?と思い質問してみました LOOKUPで画像を表示させるってのがネットで検索できたんだけど、 オートシェイプも可能? 名前の管理にINDIRECTでオートシェイプも画像同様表示可能 そうなんだ、活用してみる。 ありがとうございます。 今年の1月に Microsoft Excel 2019(最新 永続版)|オンラインコード版|Windows10/mac対応|PC2台を購入して、今使ってるPCとMacBook Airにインストールしています。 PCの方を新調するのですが、ライセンスの移行は認められているらしく、手順はこう書かれています。 現在使っているPCのExcelをアンインストール。新しい方のPCにインストール。 これってアンインストールした事がトリガーになってるんでしょうか?ライセンス違反して3台に使うつもりはありませんが、PC音痴なので、いざアンインストールして新しいのに移行出来なかったら怖いなぁって思ってるんです。 アンインストールがトリガーじゃなければ新しいので起動成功を確認してからアンインストールしようと思うのですがどうなんですか? >>869 多分、アンインストールではトリガーにならなくて、 MSサイトの自アカウント情報ページに開いて、 コンピュータ名等で登録されているインストール済デバイスの一覧から、 古いPCを消せば良いとか? それで台数条件満たせば認証が通ってupdate可能になるのでは? >>869 ライセンスの問題 アンインストールを先にしないとライセンス違反になる それで何が起こるかは知らない 昔エクセル詳しくなりたいんでセミナーでも 受けたらいいですかって聞いたら セミナーとか何時の時代の人間だよww そんなもの時間と金の無駄だからwww ってめちゃくちゃ草生やされた;;; でも今は、確かにセミナーは無いよなって思う ネットでいくらでも調べれるし、自分で調べたほうが ちゃんと身につくし、モチベーションも維持できるし 先輩の言ってること正しかったんだな… ,r´⌒ヽ,⌒ヽ,ヽ (⌒)、 .人 λ\、 .___ \. \ 、 ヽ./ ー ー\ |\ \ ヽ./ ( ●) ( ●) | \ \ / (__人__) \ はいはい、どーもすみませんでした |. \ | ` ⌒´ | . |. |.\_ノ\ / . |. | | \______/ . | ) .|  ̄ ̄ . | | .| | |.| .| . | | .| .| / / / ヽ, (__ノ ヽ、__つ オートフィルについてです 例えば セルA1 =a!A1 セルB1 =b!A1 としたとき、 オートフィルで横に伸ばすと セルC1 =a!C1 セルD1 =b!C1 こうなりますよね? これを セルC1 =a!B2 セルD1 =b!B2 こういう風にオートフィルしていくような手順ってありませんか? vlookupで文字列とかで検索出来てないのはわかるんだけど 数値に直したあともセルにF2なり触らないと反応しないのって仕様なのか? >>876 なんかエラー出るので外部のメモ帳サイト http://plsk.net/asdasd >>878 そう。これはめんどい仕様だな 数個ならF2とenter連打、 多いならどこかに1を入力して、コピーペーストで値+乗算貼り付けで数値にできる 私の魅力を教えて下さい 何も無いってことは無いと思うんです 【1 OSの種類 .】 Windows10 【2 Excelのバージョン 】 Excel2016 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 ゲームの対応表について 同種族のキャラを集めて戦う、というゲームで対応表を作ろうと思っています。 キャラそれぞれに種族の名前を定義して種族の数を数えることはできました。 しかし、種族の数に対応させてキャラを表示させる方法が思いつきません。 何かいいアイデアはないでしょうか? 分かりにくい説明ですみません。 https://dotup.org/uploda/dotup.org1902048.xlsx.html >>885 学校の先生なら貴方に根気よく付き合ってくれるでしょう >>885 まぁ見てみれば分かるだろうと思ったら全然わからなくて草 >>887 同じくwwww 超余裕だろうと思ったが、全然わからんwwww データベースのセルD9。 ジャイロコプターなんて言葉を聞いたのは、 じゃあまん探偵団魔麟組以降、30数年振りだわ。 質問させて下さい。 A1から下方向に会社名を入れていきます。 B1から下方向にA列に入力された会社名を参照したいです。 条件として重複するものは一つだけを参照して、B列は空欄を作らず、詰めて参照したいです。 空欄を作っていいのであれば出来ました。以下の数式です。 =IF(COUNTIF($A$1:A1,A1)=1,A1,"") よろしくお願いします。 >>890 はい、重複データは飛ばないようにしたいです。 AB 11 22 27 73 34 35 3 4 1 5 文字と数値も同じだと思いますので、上の様な感じにしたいです。 >>891 A列がソートされてるなら簡単。 1行目に1を入れる。 2行目以降は、A列のセルの上下を比較して、値が変わったら、1つ上の行の値に+1する。 変わらなかったら、1つ上の値をそのまま参照。 あとはRow()を引数にしてMatchすれば、行番号が取れるので、Indexするだけ。 >>892 >>891 をよく見ような A列はソートされてない >>893 それならちょっと変えて。 CountIfで1になるやつだけ拾っていけばいいかな。 もちろん計算式が入っている行より上を参照するCountIfで。 ソートされていなくてもmatchの0でイケるじゃん >>889 むしろやり方がわからないのに、そんな発想が出たのが凄いわ。 出来ない人は、そもそも計算式で空白を詰められるなんて考えもしないと思うんだが。 皆様ありがとうございます。 indexとsmallとrowの3つを使えば、上に詰めて参照できる事が分かりました。 それを889で示した数式を入れ込めば出来そうです。 >>891 その元データに会社名ナンバーは作ってないの? >>889 持ってる本にそういうの載っていたが会社に置きっぱなしだわ なので自力で B列を作業列として B1に =IF(COUNTIF($A$1:A1,A1)=1,ROW()) C1に =IFERROR(INDEX(A:A,SMALL(B:B,ROW())),"") もうちょっとシンプルになりそうな気もするが眠くて思いつかんわ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる