Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 81
http://pc11.2ch.net/test/read.cgi/bsoft/1239169475/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。 ・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。 ・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>1-2 あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
★1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2 にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
★2.
>>1 ★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
★3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1 ★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える) ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA) ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。
1乙 前スレ1000ファインプレイ乙
8 :
名無しさん@そうだ選挙にいこう :2009/05/09(土) 18:13:14
Office2003を使用ています vlookup関数で”シチズンホールディングス”が返ってきたとすると 頭から5文字の表示”シチズンホ”までを表示したいと思っております xxxxx(vlookup(,,,), xxxx)みたいなかんじで何かいい関数ないでしょうか?
10 :
名無しさん@そうだ選挙にいこう :2009/05/09(土) 18:37:45
XP、Excel2000使用です。 100%積み上げ横棒グラフにて縦軸1月と2月とし、それぞれの月で複数項目の増減がどれくらいかを 見られるように作成しました。 ですが、縦軸はグラフ上下の端に1月2月と入っていますが、横棒グラフが上端と上下端の中間にきており 2月のグラフがずれていて見づらいのです。これを下端にもって行きたいのですが、 どのようにすればいいのでしょうか。 よろしくお願いします。
11 :
名無しさん@そうだ選挙にいこう :2009/05/09(土) 19:42:28
たとえばA1のセルに 「あああ、いいい、ううう、えええ」の場合カウント4 「ははは」の場合カウント1 空白の場合カウント0 みたいにB1に出したいのですが Findを使ったりいろいろ試しているのですが どうしてもうまくいきません 何か良い方法とかありますでしょうか?
12 :
名無しさん@そうだ選挙にいこう :2009/05/09(土) 19:53:38
>>11 文字は「、」で区切られてるとして「、」の数を数えてみた。
=IF(ISBLANK(A1)=TRUE,0,LEN(A1)-LEN(SUBSTITUTE(A1,"、",""))+1)
空白なら0、そうでなければ「、」の数+1
>>13 そうだった。ifの真だから
=IF(ISBLANK(A1),0,LEN(A1)-LEN(SUBSTITUTE(A1,"、",""))+1)
でOKだね。
意味のない短縮 =(A1>"")*(LEN(A1)-LEN(SUBSTITUTE(A1,"、",))+1)
>>15 それならこっちの方がよくない?
=(A1>"")+(LEN(A1)-LEN(SUBSTITUTE(A1,"、",)))
>>17 それなら後半の式をくくるカッコも不要だな
=(A1>"")+LEN(A1)-LEN(SUBSTITUTE(A1,"、",))
ISBLANKで判定しないとA列のデータが数値だったときにおかしくなるぞ 「1、2」ならちゃんと2になるけど「1」だと0になってしまう。
>>21 じゃあこれなら文句ないだろ
=(A1<>"")+LEN(A1)-LEN(SUBSTITUTE(A1,"、",))
なるほど
>>10 今どういう状況になってて、どうしたいのかがいまひとつ理解できない。
もし良かったら、ブックをうpかグラフの画像うpかどちらかしてみてくれないか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 まったくの初心者 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 リスト 削除 ユーザーフォームを設置しています。 このユーザーフォーム上の削除ボタンをクリックすることによって元のデータを削除したいんです。 ユーザーフォームの元の情報はSheet3のB2〜G2、B3〜G3、B4〜G4などに行ごとにならんでおり、このSheet3のBなんとかからGなんとかの情報を削除するようにしたいのです。 ちなみにSheet3のA列には番号が振ってあり、この番号自体は削除したくありません。 BからGまでの情報を行ごとに削除したら、上に詰めるようにしたいです。 ちなみにユーザーフォームへの出力は少々ややこしく、Sheet1上にリストボックスをつくりSheet3から転載してリスト内容を表示、 Sheet1のC19に選択したリスト番号(A列の番号)を出力、VLOOKUP関数でSheet1のAA19〜AE19に選択した情報を表示するようにしてます。(なおAA19にはSheet3A列の番号) さらにユーザーフォームを開いた際にSheet1のAA19〜AG19までのデータをSheet2のA3〜G3にコピーして、そこからユーザーフォームの内容を表示するようにしています。 ユーザーフォームの内容を書き換えて編集ボタンを押す際にSheet2を編集した情報を、たとえばSheet2のA3の値が5であったとすると、Sheet3のB5〜G5の値を上書きするようにしています。 いったんSheet2のB3〜G3を空白にしてSheet3のBなんとか〜Gなんとかを空白で上書きして上に詰めたほうがいいのか、直接Sheet3の指定行を削除して上に詰めたほうがいいのかはわかりませんが、可能な方法でやりたいと思います。 ただ、Sheet2のA列には情報の番号があるんですが、ユーザーフォームには情報の番号を出力していませんので前者のほうが簡単かとは思います。 少々わかりにくかったかもしれませんが、何卒よろしくお願いいたします。
>>25 数が合わないよ。AEじゃなくてAFじゃないの?
>>25 たとえばVBAで3行目のデータを削除してそれ以降を上に詰めるってのはこれ1行だけでできる
Range("B3:G3").Delete Shift:=xlUp
すいません、返事遅れました。
>>26 ごめんなさいAGでした。申し訳ありません。
なぜかというと、AA19は、Sheet3のA列の番号がはいっているんです。
Sheet3には正確に言うとAからGまではいっているんですが、削除するのがBからGということです。
>>27 ありがとうございます。
3行目と行数が決まっているわけではなく、リストから選択した行数を削除したいんですね。
その場合はどうすればよろしいでしょうか?
>>
29 :
25 :2009/05/10(日) 19:10:12
まえにこちらで教えていただいて、Sheet2の内容をSheet3へ上書きするには下記のようにしています。 要するにこれを空欄で上書きできればそれが一番いいのですが・・・ ただしA列以外を空欄で上書きという風にできれば。 Private Sub Command2_Click() g = Sheets("Sheet3").Range("A65536").End(xlUp).Row a = Sheets("Sheet2").Range("a3").Value Sheets("Sheet3").Select For i = 1 To g If Cells(i, 1).Value = a Then Range("b" & i).Value = Sheets("Sheet2").Range("b3").Value Range("c" & i).Value = Sheets("Sheet2").Range("c3").Value Range("d" & i).Value = Sheets("Sheet2").Range("d3").Value Range("e" & i).Value = Sheets("Sheet2").Range("e3").Value Range("f" & i).Value = Sheets("Sheet2").Range("f3").Value Range("g" & i).Value = Sheets("Sheet2").Range("g3").Value End End If Next MsgBox "管理番号なし" End Sub すいません。どなたか助けてください。ぜひよろしくお願いします。
30 :
25 :2009/05/10(日) 19:18:59
↑ こういうのを後出しっていうんですね… 申し訳ありません。。。 整理できてませんでした。
>>28 削除したい行の番号が変数DelRに入ってるとして
Range("B" & DelR & ":G" & DelR).Delete Shift:=xlUp
いちいち聞いてたんじゃなかなか進まないでしょ
どこを修正したらいいのかよく見て、これぐらい自分で応用できるようになろうよ
32 :
25 :2009/05/10(日) 20:38:22
>>31 ありがとうございました!!できました!
DelR = Range("Sheet2!A3").Value
Sheets("Sheet3").Range("B" & DelR & ":G" & DelR).Delete Shift:=xlUp
ですね!!
たすかりました。
変数の応用、できるようになりたいです!
がんばります。
33 :
名無しさん@そうだ選挙にいこう :2009/05/10(日) 21:23:30
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】Excel イコール無し 四則演算 あるブックの他の人が作ったシートのデータ入力欄で キーボード入力する際に 1+2+3[Enter] といった具合に入力すると、自動で「=」が付加されて、セルの数式の部分には =1+2+3 セル自体には 6 と表示されるのですが、 新しく作ったシートで同じように入力しても、セルの数式の部分とセル自体には 1+2+3 としか表示されません。 自動で=を付加させて、セル自体には計算結果を表示させたいのですが、どうすればいいのでしょうか。
>>33 他の人が作ったシートにはマクロが設定されてるんじゃないのかな。
= を使いたくないなら + を使うか
その人が作ったシートをコピーして使うとか。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ユーザーフォーム 空欄 0 ユーザーフォームで参照セルが空欄の場合0が表示されてしまいます。 これを表示しないようにしたいのですが。 よろしくお願いします。
39 :
37 :2009/05/11(月) 01:06:00
>>38 ありがとうございます。
すみません。大変恥ずかしいのですが、どうしてもわかりません。
" "を参照元の書式設定してみましたがだめでした。
それとテキストボックスのコントロールソースも" "で囲おうとしましたが入力できませんでした。
他に思いつきません…
どうか教えてください。お願いします。
>>37 ユーザーフォームの何に何を表示させてるの?
テキストボックス?
>>37 その参照してるセルにはどんな数式が入ってる?
>>35 >>33 で「新しく作ったシートでは表示されない」となってるから
Worksheet_Changeに何か入ってそう。
もしそうならシート追加だとWorksheet_Change部分はコピーされないから
シートコピーがいいと思う。
>>39 空白セルにスペースを入れろと言うことだろ。
再現しねえ。 普通に TextBox1.ControlSource = "A1" ってやっただけなら、セルが空白ならテキストボックスもそのまま空白になんだけど。
45 :
37 :2009/05/11(月) 10:43:15
>>40 >>41 ユーザーフォームのテキストボックスに、Sheet2のA1からX1の値を表示させています。
セルには数式は入っていません。しかし、マクロでSheet1のA1からF1の値を表示させています。
Sub ユーザーフォーム2起動()
Range("Sheet2!A1:Sheet2!F1").Value = Range("Sheet1!A1:Sheet1!F1").Value
UserForm2.Show
End Sub
ただ、Sheet1のA1には
=IF(Sheet1!$C$19="","",VLOOKUP(TOP!$C$19,Sheet3!$A$1:Sheet3!$F$65536,1,0))
という数式が入っています。
>>43 空白セルにスペースをいれてみましたが、空白が入りません…
というのがユーザーウォームを立ち上げた瞬間にSheet1のセルA1からF1の値を反映するようにしています。
>>44 ControlSource に Sheet2!A1 と入れています。
"Sheet2!A1"といれようかと試みましたがだめでした。
「ControlSourceプロパティーを設定できません。プロパティーの値が無効です。」
とエラーになります。
すいません。 ユーザーフォームのテキストボックスに、Sheet2のA1からF1の値を表示させています。 の間違いです。。
これも間違いです。何度もすいません。 ただ、Sheet1のA1には =IF(Sheet1!$C$19="","",VLOOKUP(Sheet1!$C$19,Sheet3!$A$1:Sheet3!$F$65536,1,0)) という数式が入っています。 でした。
何を質問してるのか俺にはさっぱり分らんが、Sheet1!とかSheet2!とかは1回でいいよ? 律儀に2回も書くことない。
ファイルアップロードして何をしたいか書いたほうが早いかもねぇ
テキストボックスじゃないんじゃないの? どうやってA1:X1の値を入れてるんだ? 出来ないことはないけどね。
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 SP3 【3 VBAが使えるか .】 使えません 【4 VBAでの回答の可否】 可(VBAは全く分かりませんが、コードを書いていただければ内容を調べて理解に努めます) 【5 検索キーワード 】 Excel VBA セル 上書き 条件 等を色々と組み合わせて。 F列に有る年月情報を、G列にある年月の方が大きい場合、G列の年月で上書きし、G列の数値をクリアする(削除では無くクリア)。 G列のセルが空白の時はスキップ。 という作動をシート全体にさせたいと思います。 単純に言うとF列の年月情報をG列の年月情報が新しい場合、それで更新したい。 という感じです。よろしくお願いします。
クリアって何?
53 :
37 :2009/05/11(月) 18:42:39
>>53 30もユーザーフォームがあるじゃねーかよ。
どのユーザーフォームのTextBoxなんだ?
55 :
37 :2009/05/11(月) 19:00:37
すいません。 UserForm17です。
そんな大がかりなブックみても分らんよ。 現象が再現できる最低限の小さなブックをアップしろ。
>>53 シートの値が0になってっりゃそこを参照してるTextBoxも0になるのは当然だと思うが?
フォーム起動ボタンを押すと、0が補完されるし。
しかしまぁコードみるかぎりかなり初心者だと思うが、よくこんな大がかりなブック作るよな。 しかもクラスモジュールまで使ってる形跡もあるし。
60 :
37 :2009/05/11(月) 20:08:29
>>56 いま、準備してますが、現象が出てこないんです。
何が原因でこうなったのか…
TOPのVLOOKUPが原因なのかVBが原因なのか…
普通にしてたら0は出てきません。
もう少しがんばって現象を出して見ます。
61 :
37 :2009/05/11(月) 20:15:10
>>60 TOPのVLOOKUPの式が#REF!になってるのは何で?
>>51 Sub test()
Dim i As Long
Dim r As Long
'6列目(F列)の最終行を調べる
r = Cells(Rows.Count, 6).End(xlUp).Row
'↓1行目が項目行と考えて2行目からにしたが適宜変更すること
For i = 2 To r
If Cells(i, 7).Value <> "" And Cells(i, 7).Value >= Cells(i, 6) Then
Cells(i, 6).Value = Cells(i, 7).Value
Cells(i, 7).ClearContents
End If
Next i
End Sub
すごいなブックをみた まさか会社からかっぱらってないよね
65 :
名無しさん@そうだ選挙にいこう :2009/05/11(月) 20:28:50
2000使用です 先ほどの起動から、突然矢印操作がおかしくなってしまいました 普通ならセル移動なんですが、表全体がスクロールするようになってしまいました これはいったいどこに不具合が出たんでしょうか 起動したらこうなってました、設定変更は一切してません 小遣い表に使ってる程度なので、設定変更もせいぜい色や幅を変えるぐらいしかしませんし 非常に困っています、どうやったら直せますか 再起動してみましたが直りませんでした
66 :
37 :2009/05/11(月) 20:31:13
>>62 本当はもうひとつリストがあって、その情報を別のユーザーフォームに表示させようとおもっていたんですが、さすがに面倒になってやめました。
その名残で残ってます。紛らわしくてすみません。
たぶん、UserForm17を立ち上げる際にTOPから見積一時シートに転記するときに0が入ってしまうと思うんですが、これを入らないようにするにはどうしたらいいでしょうか?
>>65 キーボードの右上にScroll Lockというキーがあるだろうから押してみて
68 :
51 :2009/05/11(月) 20:38:28
>>52 さん
セルのコンテキストメニューで出てくる削除ではなく、数式と値のクリアということです。
69 :
名無しさん@そうだ選挙にいこう :2009/05/11(月) 20:42:16
あっ・・・キーボードのキーLockランプが光ってる・・・なぜ?
>>67 ありがとおおおおおおおおおおおお!
この機能なのか_| ̄|○
使う必要の無いキーが知らないうちに押されてると全く違う動きになって悩むことしばしば
ほんとにありがとう
>>66 プロパティウインドウ開いてプロパティのTextに0が入ってるから消す。
71 :
37 :2009/05/11(月) 20:52:06
>>70 ありがとうございます。
しかし、いったん0をけしてもUserForm17を立ち上げるときにまた0が入ってしまいます…
72 :
51 :2009/05/11(月) 20:59:59
>>63 ありがとうございます
内容見ながら把握して実験してみます。
※現在アク禁中に付き、他スレにて代理書き込みをお願いしており、
※返事が前後してしまいました。
>>66 TOPシートのAB15が空白のように見えるとき実際の値は0になってる。
表示形式が[=0]"";G/標準になってるので空白に見えるだけ。
VLOOKUPの式を見直すか、見積一時シートへ代入するときValueプロパティじゃなくTextプロパティを代入すればいい。
ただしValueと違っていっぺんには代入出来ないからループを回すことになる。
式を見直す場合はAB15を例にとると
=IF(TOP!$C$19="","",IF(VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)))
となる。
数値が数字(文字列)になってもかまわなければ
=IF(TOP!$C$19="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)&"")
と""を後ろにくっつければいい。
=IF(TOP!$C$19="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:$BL$5666,2,0)&"")だったな。 前にも書いたようにシートの指定は一回でいい。 ただ車両見積一覧の番号が1からの連番になってるのでVLOOKUPを使うのは愚の骨頂だ。 INDEX関数だけでいい。 VLOOKUP使いは馬鹿が多いから気をつけろ。
76 :
37 :2009/05/11(月) 21:36:24
ありがとうございます! できました! ループを回すやり方がよくわからなかったので、VLOOKUPを見直しました。 =IF(TOP!$C$19="","",IF(VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0)="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:車両見積一覧!$BL$5666,2,0))) のほうでやってみたら0が消えました。 かなり時間食ったので本当にうれしいです。ありがとうございました! そのほかの皆さんもお騒がせしました。
77 :
37 :2009/05/11(月) 21:44:41
>>75 シートの指定は
=IF(TOP!$C$19="","",IF(VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:$BL$5666,2,0)="","",VLOOKUP(TOP!$C$19,車両見積一覧!$A$1:$BL$5666,2,0)))
ってことですね?
INDEX関数ですか?
勉強のためにやってみます!
ありがとうございます。
【1 OSの種類 .】 WindowsVISTA 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL セルの書式 数式 相談させてください H3の値がQ3より大きい、かつ、H3が未入力ではない 場合 H3のセルの背景を赤で塗りつぶす には、どのように設定したらいいでしょうか? また?3列で設定後、同じ設定を4列〜30列まで設定したいのですが、 セルの中に数式を入れる場合と違い、セルの書式の場合は、手動で一つ一つ設定していくしかないでしょうか?
>>77 ヒントだがB3:B5666の100番目の値は =INDEX(B3:B5666,100)
>>78 H3を選択して書式→条件付書式→数式が→=AND(H3<>"",H3>Q3)→書式で赤を選択
条件付書式もコピーできる。書式のコピーすればいい。
>>78 セルH3を選択し、ツールバーの書式→条件付書式
「セルの値が」をクリックし、「数式が」に変更
「=and(h3>q3,h3<>"")」と入力 ・・・普通にセルを選択して入力した場合、絶対参照になってしまうので注意
「書式」をクリックし、「パターン」タブを選んだあと、色を設定し「OK」
そのままH3をコピーし、H4〜H30まで「形式を選択して貼付け」の「書式」で貼り付ければOK。
>>79 に続いてもう一つヒント。
$B$3:$BL$5666の上から100番目で左から10番目は
=INDEX($B$3:$BL$5666,100,10)
$B$3:$BL$5666は名前定義した方が楽だけどな。
>>78 H3が未入力かどうかは見なくていいんじゃないの?
H3が未入力なら当然Q3の値より小さいことになる。
85 :
83 :2009/05/11(月) 22:16:04
すまん、Q3が負の数値のケースを失念した。
86 :
83 :2009/05/11(月) 22:17:08
空白は0か
88 :
83 :2009/05/11(月) 22:21:39
>>87 そういうことだな。
条件付き書式に「空白セルは無視する」とかあったような気がしたが探してもないな。
>>88 「空白を無視する」は入力規則のリストのときに使うね。
2007はわからんが。
90 :
名無しさん@そうだ選挙にいこう :2009/05/12(火) 10:45:12
助言願います。 Excel2003 ユーザーフォーム内で作成したテキストボックス内の文字列位置の 上下センター付けはどのように設定すれば良いのでしょうか?
>>90 (コントロールの高さ - フォントの高さ) / 2
を、上下のマージンとして設定すればいいんじゃね?
Win32APIで。
あとはそこまでしてでもセンタリングしたいか
プロパティとかで手軽に設定出来ないならキッパリ諦めるかはお好きなように。
92 :
37 :2009/05/12(火) 22:41:44
>>82 ありがとうございます。
INDEX関数難しいです…
ヒントの意味すらよくわかりません 泣
VLOOKUPはB3からBL5666の中を検索して同じ番号の行の○列目を表示するって意味ですよね?
INDEXの場合はB3からBL5666の中を検索して同じ番号の行の配列を表示するって意味ですよね?
う〜〜ん。
INDEX関数検索してみましたが…
=INDEX(TOP!$C$19,車両見積一覧!$A$3:$BL$5666,3,1)
といれたらREF!になってしまいました。
93 :
名無しさん@そうだ選挙にいこう :2009/05/12(火) 23:56:19
質問させてください。 【1 OSの種類】 WindowsXP 【2 Excelのバージョン】 Excel2000 【3 VBAが使えるか】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード】 EXCEL セルの一部 リンク A1に、「2009年10月1日〜10月31日」 B1に、「2009年11月1日〜11月30日」 A1の一部「2009」を、「2010」に変えると B1の「2009」も「2010」に変わるよう連動させたいのですが・・ セルの一部をリンクすることは可能でしょうか。
>>93 直接リンクさせるのは無理。
どこかに年を入れるセルを用意して、A1とB1を両方ともそこへリンクさせるしかない。
さもなくばVBA
>>93 無理矢理だけど。
=LEFT(A1,4)&("年11月1日〜11月30日")
自分ならひとつのセルにはひとつの年月日だけ入れて書式設定で表示する。
ごめん。質問の意味勘違いしてた。
2009年11月1日〜11月30日は固定だとしたらリンクは無理だね。
>>94 の言うとおり。
>>95 更に無理やりな式。
=TEXT(DATE(LEFT(A1,4),MID(A1,6,FIND("月",A1)-6)+1,1),"yyyy年m月d日〜")&TEXT(DATE(LEFT(A1,4),MID(A1,6,FIND("月",A1)-6)+2,0),"yyyy年m月d日")
>>92 VLOOKUPで検索するのは左端の列。
見つかった同じ行の○列目を表示する。
しかし検索する左端はの列は1からの連番になってるから検索する必要はないんんだよ。
たとえば5を検索しても5番目にあるって決まってるからね。
15を検索したら15番目だ。
これでも分らなければ、君はVLOOKUPの式をINDEXとMATCHの式に置き換える勉強をした方がいい。
そうしたら分るようになるかも知らん。
>>94 いい事言うなあお前。
みんなが頭じゃわかっててもなかなか実践できない事を口に出して言えるなんざ大変な自信だよ。
それで出来てなかったらあのインチキ占いのバアさんと一緒だぞお前。
そんなに当たり前の事を言いたかったら尼さんにでもなってから説教したらどうだ。
どこを誤爆?
元のファイル見てないんであれだけど 慣れないVBAや関数使って苦労するぐらいなら運用と手計算でカバーした方が確実なんじゃないかね。 ここで何度も何度も質問を繰り返すレベルだとそのうち致命的なうっかりミスしそうで怖いんだが。
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2007(多分) 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL 文字化け ハングル excelで自動計算する表を作りました。単位 kg/?の?のところがハングルに文字化けします。 グーグルで調べてニューグリムフォントを削除したら、ハングルは表示されなくなったのですが、 今度はkg/rと表示されてしまいます。きちっとkg/?と表示させるには、どうしたらよいでしょうか?
?のところは、全角立方メートルです。
>>102 文字化けしてるぞ。何の単位だ?
ここに書き込めないということは、ユニコードにしかない記号だと思うが
とりあえずMS UIゴシックにしてみ。
全角 立方メートル m3ってシフトjisにもあると思うのですけど。
>>105 平方メートルはあるけど立法メートルはJISコードには含まれてない
?
この板はユニコード使えんよ
m3って書いて3を上付きにすればいいじゃない 機種依存文字を使うのはあんま良くないし(実際文字化けもしてるわけだし) まあExcelで上付き文字使うのちょっとめんどいけどさ、何かコピペとかするたびに元戻っちゃうしね でも文字化けするよりはいいと思う
cm?
m³ m³ m³
よくわからんが、IE8だと書けるのか? テスト→?
orz
ocz ←キンタマにボールが当たったキャッチャー
ユニコード不可の板でも、ごく一部の記号だけは判定の関係で書けてしまう。 上付き文字はユニコードには0〜9まで全部あるけど、書き込めるのは 1 2 3 a の4つだけ。 一文字で「m3」みたいな記号は無理。
¹ ² ³ ª
?
121 :
93 :2009/05/13(水) 23:42:35
レス遅くなり申し訳ありません。
>>94 「どこかに年を入れるセルを用意して、A1とB1を両方ともそこへリンクさせるしかない。」
ぁ!それです!!それで構いません。
そのセルからのリンク方法ってどうしたらいいんでしょうか。
そのやり方もググってみたもののヒットせず・・。
>>121 年を入れるセルをC1としたら(C1に例えば2009と入れておいて)
A1に =C1&"年10月1日〜10月31日
B1に =C1&"年11月1日〜11月30日
とかでいいわけ?
123 :
122 :2009/05/14(木) 00:10:35
おっとごめん A1に =C1&"年10月1日〜10月31日" B1に =C1&"年11月1日〜11月30日" 後ろの"が消えてたわ
>>121 単純に別のセルに「2009」と入力するだけじゃね?
C1とか。
そのままC1に12月が入るのなら、例えばSheet2のA1にするとか。
(sheet2にした場合)
A1を「=Sheet2!$A$1&"年10月1日〜10月31日"」
B1を「=Sheet2!$A$1&"年11月1日〜11月30日"」
でどう?
ついでに言えば、D1に1月が入るのなら、
「=Sheet2!$A$1+1&"年1月1日〜1月31日"」
と、「A1+1」にしておけば、そのまま2010年1月になるし、
SHEET2を2010年にした場合は2011になる。
>>121 2009じゃなくて2009/10/1とか年月日ならリンク先の日付も変更しなくてすむよ。
A1に2009/10/1と入れる。
B1に
=TEXT(DATE(YEAR($A$1),MONTH($A$1)+COLUMN()-2,1),"yyyy年m月d日〜")&TEXT(DATE(YEAR($A$1),MONTH($A$1)+COLUMN()-1,0),"yyyy年m月d日")
と入れる。右にコピーしてもよし。
横じゃなくて縦の場合
A2に
=TEXT(DATE(YEAR($A$1),MONTH($A$1)+ROW()-2,1),"yyyy年m月d日〜")&TEXT(DATE(YEAR($A$1),MONTH($A$1)+ROW()-1,0),"yyyy年m月d日")
126 :
名無しさん@そうだ選挙にいこう :2009/05/14(木) 11:09:17
ちょっと質問なんですが OSはXPでExcel2002を使ってます 複数のシート(8枚くらい)全部のA1:BT1000に びっしり計算式が入れてあるのですが 全部のセルの左上肩に緑の三角が出てて 「エラーですよ・∀・」って教えてくれているんですが これを全部「エラーを無視する」にして三角を消すと 計算速度が上がったりとか メモリ的に軽くなったりとか そういうメリットはありますか? それとも見た目だけでこの三角はなんにも労力を使っていませんか?
緑の三角って2002以降で、文字型セルに数値が入ってる時に出てくるあれ?
>>126 体感できるかどうかはわからんが、理論上は動作が少し重くなる
文字でも図形でも、画面に何か表示するにはそれなりの処理が必要なんだが 実用上問題ないってんならわかるけど、労力ゼロってのはありえない
130 :
名無しさん@そうだ選挙にいこう :2009/05/14(木) 15:09:00
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 Sub Test() If vbNo = MsgBox("ページを追加しますか?", vbYesNo) Then Exit Sub Else Dim i As Integer i = 98 Do If Not Cells(i, 5).MergeCells Then Range("A1:Y58").Copy Cells(i - 39, 1).PasteSpecial Paste:=xlPasteFormats Exit Do End If i = i + 58 Loop End If i = i + 18 ActiveSheet.PageSetup.PrintArea = "$A$1:$Y$i" ' ここの部分でエラー End Sub 上の文で印刷範囲の変更の部分でエラーが出てしまい 自力では解決できませんでした お力添えお願いいたします
EXCEL一家の楽しい会話 質問無いけど重宝してます 皆さん 多謝
"$A$1:$Y$" & i
134 :
130 :2009/05/14(木) 17:18:11
助けていただきありがとうございました
135 :
名無しさん@そうだ選挙にいこう :2009/05/14(木) 20:29:54
すみません。 2003を使ってますが、物の数だけカウントして 何が一番多いか、二番目は何かを調べたいのですが、 分かる方いますか? 例えば お皿 はし はし コップ 。 。 と千行以上あり、毎日追加されています。 上の方に上位五までを自動ででるように したいのですが。。
136 :
名無しさん@そうだ選挙にいこう :2009/05/14(木) 20:33:03
上の方にと言うのは 表示用のセルを作るという事です。 よろしくお願いします。 フィルターは使わず関数だけで解決できればと思います。
>>135 作業列にCOUNTIF関数で個数表示して
表示用セルにLARGE関数で上位5を表示させるとか。
なんでも関数でやろうと考えない方がいい。 とくにCOUNTIFなんか使うのはやめた方がいい。 ピボットテーブルで個数を数えて個数で降順にソートして、別のセルにピボットテーブルの上位5個にリンクを張るだけだな。 データが変わっても、更新すりゃちゃんとピボットテーブルは多い順に並ぶ。 5番目のデータが複数ある時を考慮するなら、リンクする式にLARGE関数を使ってちょい工夫するだけ。
上は
>>137 は読まないで書いたからね。
ごめんな。
140 :
138 :2009/05/14(木) 21:16:20
>>138 で最後に書いたLARGE関数だが、これは要らんな。
6行目以下の式はピボットテーブルの5番目のデータと比較すりゃいいだけだ。
特定する行の値に対して値を返したいのですがどうすればいいでしょうか? 例えばA1に1と入力されればB1に「あ」、A1が2の場合はB1に「い」と自動で入力されるような感じです。 どなたかご教授ください…。
142 :
141 :2009/05/15(金) 00:37:51
たびたびすいません。 IF関数使おうとしたのですが返す値が一つなので困っています。
リストを作れば簡単だろ? C1以下に あ い う え お とリストがあれば =INDEX(C:C,1)とすりゃ"あ"が返る。 間違っても番号を振ってVLOOKUPなんか使うなよ。
数がすくなけりゃCHOOSE関数でもいいか。 =CHOOSE(3,"あ","い","う","え")なら"う”だ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 同一ブックでのコピペなんですが、その1はOKなのに、その2は どこがダメなのでしょうか? 'その1 Worksheets("DATA").Select Range("A1", Range("C65536").End(xlUp)).Copy Worksheets("集計").Select Range("A2").Select ActiveSheet.Paste 'その2 Worksheets("DATA").Range("A1", Range("C65536").End(xlUp)).Copy _ Destination:=Worksheets("集計").Range("A2")
146 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 01:05:10
なんで馬鹿って上から目線なんだろうな馬鹿な回答もどき書き散らしてんのに
わかりやすく書けよ・・ B1に=CHOOSE(A1,"あ","い","う","え","お")と入れ、以下必要なセルまでコピー A1に1と入れれば、”あ”が返るし、2は”い”になるってことだ。
>143.144.147様 ありがとうございます。 明日試してみます!助かります!
149 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 01:13:21
151 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 01:18:01
オツとか懐かしいな 昭和の香りだ
145ですが、誰か教えてください。
>>152 Worksheets("DATA").Range(Worksheets("DATA").Range("A1"), Worksheets("DATA").Range("C65536").End(xlUp)).Copy _
Destination:=Worksheets("集計").Range("A2")
って指定すればいけんじゃね?
with Worksheets("DATA")
range(.Range("A1"),.Range("C65536").End(xlUp)).copy Worksheets("集計").Range("A2")
end with
でもいいかな。どこのrangeかいうのをきっちり指定してやればおk
>>153 ありがとうございます。
2時間くらい、ずっと悩んでました。
>>143 >間違っても番号を振ってVLOOKUPなんか使うなよ
なんで?
>>153 みたいな長ったらしいコード書くくらいなら・・・
Sub test()
Dim myR As Range
Set myR = Worksheets("DATA").Range("A1", Range("C65536").End(xlUp))
myR.Copy Destination:=Worksheets("集計").Range("A2")
End Sub
157 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 01:41:06
さすが馬鹿は何もわかってねーなw 斜め上すぎてちょっと感心したわw
158 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 01:42:52
馬鹿が悩むのがかわいそうだから書いておくけど それじゃどこのシートのC列の最終セルなのかわかんねーだろ 頭冷やせ 俺もう寝るわw
159 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 01:53:58
160 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 01:56:13
馬鹿が悩むのがかわいそうだから書いておくけど それじゃどこのカキコ宛てのレスなのかわかんねーだろ 頭冷やせ 俺もう寝るわw
どっちが馬鹿なのか?あー! >それじゃどこのシートのC列の最終セルなのかわかんねーだろ だから頭にWorksheets("DATA")があるだろ!連続した範囲指定の場合他のシートにまたがる ことはありえねーし、Rangeオブジェクト内でAからCってあるから問題ねーんだよ、ボケ!!
Worksheets("DATA").Range(Worksheets("DATA").Range("A1"), Worksheets("DATA").Range("C65536").End(xlUp)) 俺もこんな書き方はしねーなwww
ちと笑ったんでマジレスしてみる。
普通、先頭にシート指定がある場合はRangeプロパティでしつこくシート指定する
必要は全くない。
>>153 のコードは間違いではないが無駄。
それに対して、
>>156 のコードはSetステートメントで一シート内の範囲を連続範囲
をあらかじめオブジェクトとして変数に格納しているのでこちらの方が無駄がない。
↑の一部文章がおかしかったので訂正 ×一シート内の範囲を連続範囲 ○一シート内の連続範囲
馬鹿馬鹿言ってるのは俺じゃねーがたしかにそうらしいなw
それとも
>>156 と
>>163 はネタで書いてるの?
標準モジュールに書いてるならDATAシート上から実行しないと動かんぞ?
シートモジュールに書いてるならDATAシートのシートモジュールじゃなきゃ動かん。
下が正しい。
Sub test()
Dim myR As Range
With Worksheets("Data")
Set myR = .Range("A1", .Range("C65536").End(xlUp))
End With
myR.Copy Destination:=Worksheets("集計").Range("A2")
End Sub
試せば分かるだろうから納得しているはず
>>153 は
>>166 に書いた3人よりは分ってるがちょっと足りなかったね。
下の方はシートモジュールに書いてるなら動かんケースがある。
頭のRnageの前にApplication.とかExcel.とか修飾すれば問題ないが。
多分知ってはいると思うが、気を悪くするなよ。
>>168 いやぁ、たまたまDATAシート上で試してうまくいったから間違いないと信じ込んでた可能性もある。
>>155 C列の何番目かを求めるだけだから1からの抜け番無しの連番書いてVLOOKUPなんて意味ないだろ?
なんかVLOOKUP使いの人たちもうすこし頭を柔軟にした方がいいと思う人が多いな。
基本がどうも出来てない。
>>149 も足りない人たちの仲間だったか。
困ったもんだね。
173 :
143 :2009/05/15(金) 08:36:04
たぶん、
>>156 は単に標準モジュールに書いてDATAシート上からの実行しただけじゃね
そんで同調してるやつもそれが絶対に正しいと思ってるなwww
どこのシート上からマクロを実行するかわからないんだからそれらも考えなけりゃいかん
なんか質問スレと言うより、 知識自慢のオナニー合戦スレになってきたな。 「今朝の書き込みは全部俺」なんていう、馬鹿と言うより「少し病んでそう」な奴もでてきたし。
>>178 お前昨夜から嘘書いてる人の一人か?
おれの書いたことなんて常識的なことだから何も自慢になるようなことじゃねーよ。
すみませんがちょっと教えてください。 Set 変数名 = Nothing と書くケースと書かないケースの違いが分かりません・・ 素人丸出しの質問かもしれませんがお願いします。
>>178 いやな奴でも内容が正しけりゃ我慢しろ。
まさしくそれだ!
>>179 その「常識的なこと」を語りたいだけのために朝一番から必死に張り付いて連投することの気持ち悪さを指摘してるだけだよw
世間一般ではそこまでするのは「自分の書いたことの反応が気になって気になって仕方ない=俺ってすげー!と思ってる」からだと考えると思うが?
俺は別に全然すげーって思ってないけど? 朝から張り付いてるって、今日は非番で休みだから遊んでるだけだが何か?
186 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 10:27:16
まあいいじゃん。 どんだけ人間性が最低のコミュニケーション不全のやつでも、 おだてておけば調子にのってペラペラ回答を語るんだし。 自分に酔ってるやつはおだてて利用しつつ、 影で馬鹿にするに限るぜwww
なんだかねぇ。 書いてる内容だけを云々すりゃいいんだよ。 技術板ではそれが掟だ。
186は人間性の達人なんだねきっとw
正しいこと言ってても、性格がこんなじゃ誰からも相手されないだろw こんなところでしか自己主張できない可愛そうなやつなんだからもうほっとけ
おまいら本領発揮だなw
>>180 オブジェクト変数の場合
オブジェクトへの参照を解除して、初期化するにはオブジェクト変数にNothingキーワードを入れる。
通常はプロシージャが終了すると自動的にオブジェクトへの参照は解除されるが、明示的に解除
するにはNothingキーワードを使用する。
>>189 ネタにまじレスすると人間性をとやかく言うやつは実は人間性は最悪。
人間性の劣るもの同士がバトルをやってるスレはここでつか? ちなみにおれは人間性は最高レベルです。
196 :
152 :2009/05/15(金) 11:18:52
>>193 なるほど、プロシージャの最後(Endの直前)に書いてあったりするものでも
実際は無くても問題ないと言うことですね。
勉強になりました、ありがとうございました。<(_ _)>
>>196 の名前欄152は180の間違いでした・・
俺なにやってんだろ・・152さんすみません。
その他にも病んでそうなのがいるな。
もう、技術的な話題以外はよせ! ここをどこだと思ってるんだよ、煽り・貶し合いは他所でやってくれ
昨晩
>>145 関連で間違い書いた人たち、昼間はいなくて書き込めないのかもしれないが、夜はちゃんと謝り入れるんだろうか?
>>161 とかはボケ!!とか書いたらかっこ謝れないかもな。
かっこ悪くてあやまれないかもな。だった。
203 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 13:39:57
おっさんどもは犯人探しが大好きだよな 気持ち悪いわー
204 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 13:42:59
馬鹿が自分の事馬鹿だと気づいてくれりゃそれでいいんだよ 同じ勘違いしてたROMの連中の役にも立つだろうし 馬鹿が上から目線で馬鹿回答を正しいみたいにして勘違いするROMが増えるのが一番問題だ 誰が間違ってるかとかどーでもいい 犯人探しになぜか執着しちゃう奴は病院行ってこい
Rnageって何? 技術的に教えてください
犯人探しってだれかしてる? おまえこそ病院行った方がいいんじゃね?
>>207 ですよねw
そうだろうとは思ってたんですが、「常識的」とか「基本だろ」とか「間違っても○○するなよ」とかおっしゃる方の書込だけに、自分のしらないプロパティかと思いましたw
つまらんことで突っ込むしかないのかねw
おまいら会って喧嘩しろよ。 勝った奴がただしいんだから。
遅レスですまんが
>>143 >>171 は何でA1に入力されるのが1以上65536(2007だったら約100万)以下の整数だと思いこんじゃってるんだ?
さらに言うとA1に数値が入力されるとも限らないぞ?
>>211 つまらんつっこみするなよ。
おまえ病気だぞ。
病気かどうかはどうでもいいがそんなこと言い出したらCHOOSEに対する突っ込みもしなきゃならん。 #REF!と#VALUE!の違いだけどな。
正確に文章を読む読解力や論理的に考える能力が無い人間は 無理に回答する側にまわらなくていいのに
>>214 論理的に考える力がない奴は多いね。
論理的に無駄なロジックの式平気で書くやついるもんな。
なんかしらんがプログラミング板と勘違いしてる奴が常駐し始めたか。 うざいな。
やたらとVLOOKUPを否定してINDEX勧める奴って何が言いたいのかよく分からんなあ。 俺は用途によって使い分けるが、彼は何でもかんでもINDEXって感じだからなあ。
だよね。 INDEX覚えてうれしくてしょうがないんじゃね?
>>218 VLOOKUPの便利な使い方しらないんじゃね?
VLOOKUPの便利な使い方教えて
VLOOKUPがメシのタネになるのかよ。
昨日から盛さんざん馬鹿呼ばわりしてるやつ、いったい誰と戦ってるのか分らねぇ。 情報の間違ってる方、それとも気に食わないやつのどっち? なんかどっちとも戦ってるっぽいね。
>>136 ごめん、ラベルフィルタでトップテンってのがあった。
5番の人が複数いたらちゃんと全員表示してくれるみたい。
すまん、上だがラベルフィルタじゃなく値フィルタだった。
>>228 お前が
落ち着きのない
思ったことはやらずには気が済まない
性格であることはよくわかったw
言いたいことまとめてから書く癖つけた方がいいよ
今日は病人が多いなw
回答にせいを出せばいいのにね
先生、言い忘れた時はどうしたらいいですか?
233 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 21:06:45
WindowsXPでExcel2003を使用してます、 四角形のオートシェイプがセルのサイズに 固定されます、自由なサイズで描きたい のですが、どうすれば良いでしょうか?
>>233 図形ツールバーの図形の調整(R)→位置合わせ(S)→グリッド(G)が選択されてない?
「グリッドに合わせる」を有効にしてるんじゃないの?
オートシェイプ直りました! ありがとうございます!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ピボットテーブル 編集 ピボットテーブルについて質問します。 ピボットテーブルでを複数項目を入れると 項目1 項目2 項目3 AAAA BBB CCCC (合計値) (空白) DDD CCCC (合計値) (空白) (空白) EEEE (合計値) FFFF BBB CCCC (合計値) (空白) (空白) EEEE (合計値) (空白) DDD CCCC (合計値) のように項目名が上列と重なるところでは空白になってテーブルが出来上がります。 これを 項目1 項目2 項目3 AAAA BBB CCCC (合計値) AAAA DDD CCCC (合計値) AAAA DDD EEEE (合計値) FFFF BBB CCCC (合計値) FFFF BBB EEEE (合計値) FFFF DDD CCCC (合計値) のように全ての項目名を列毎に簡単に表示させるような方法はないでしょうか?
239 :
名無しさん@そうだ選挙にいこう :2009/05/15(金) 22:32:40
あ、すいません。列じゃなくて行ですね、、、 解答よろしくお願いします。
ピボットテーブル(ニヤリ
>>238 ピボットテーブルではどうしても空白できると思うよ。
私ならこの場合SQL使います。
>>241 やはりダメですか、、、
では
ピボットテーブルでできた表を値・書式をコピーペーストした後に
比較的簡単に
>>238 のように加工する方法はありますか?
SQLをググって見たけど自分には到底無理そうです。
>>242 ここの人には馬鹿にされそうな方法だけど
自分はE列に
=IF(A2="",E1,A2)
といれて横にコピーしてる。
あ、この場合E2に =IF(A2="",E1,A2) ってことね。
すまあとじゃないけど6行だけなら。 =A1 =IF(A2="",A1,A2) =IF(A3="",IF(A2="",A1,A2),A3) =IF(A4="",IF(A3="",IF(A2="",A1,A2),A3),A4) =IF(A5="",IF(A4="",IF(A3="",IF(A2="",A1,A2),A3),A4),A5) =IF(A6="",IF(A5="",IF(A4="",IF(A3="",IF(A2="",A1,A2),A3),A4),A5),A6)
皆さん解答ありがとうございます。 ただ、実際の表ではピボット後で1000行以上ありまして(汗) その関数だと普通にコピーした方がはやいかも… わがままですみません。 もう少し自分で考えて見ます。 お手数をおかけしました。
あ、243さんのやり方が今理解できました。 これなら全コピーでいけそうですね ありがとうございました
列には項目入れてません。 243さんので解決出来ますね。 246書いてた時はやり方を誤解してました… 申し訳ないです。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel ふりがな ソート できない 住所録を作成しているのですがふりがな通りソートできません。 原因は、入力形式が混在しているためで、Phoneticで確認したところ 1.ATOKのF3機能で「マルノウチ」のまま入っているもの、 2.オートコンプリートのまま入力した「東京都千代田区マルノウチ」 3.そのまま一から入力した「トウキョウトチヨダクマルノウチ」 すべて混在していて並び替えがうまくいってないのです 「トウキョウトチヨダクマルノウチ」して1.2.の欄に貼り付けようにも、関数が入ってるせいか貼り付けられません また、データの並び替えで「ふりがなを使わない」にしたところ、一応は並び替えられましたが 港区が北区の前に来たりして非常に気持ち悪いです。(というのは、さらにエリアごとに区分しているため丸の内エリア日本橋エリアなど) うまく並び替える方法はないでしょうか。
ふりがなを別の列に入力
>>250 ふりがなはふりがなで別の列に入力してその列をキーにして並べ替えする。
ふりがな入力の手間を省くために一時的にPhonetic関数を使うのはいいが
最終的には値貼り付けして関数は残さないようにした方がいい。
>>250 selection.setphoneticで無理矢理フリガナを振ることはできる。
ただ人名など特殊な読み方をするものに対しては正確な読み方にはならない。
範囲選択して
イミディエイトウインドウに
selection.setphonetic
と入れてEnterするか標準モジュールに↓貼り付けて実行
Sub test()
Selection.SetPhonetic
End Sub
相談させていただきます。 WindowsXP、Excel2003です。 VBAは使えないので、回答もVBAなしでお願いします。 実験での測定値から双曲線に近似(最小二乗法で)して、理論式での定数を求めようとして、ソルバーを使いました。 求める定数は式中に2つあるのですが、ソルバーを実行する際、初期値によって2つの定数の結果が変わってしまいます。 これはなぜなのでしょうか? 適切な値を出すためにはどのようなことに気をつければよいのでしょうか?
>>254 数学キター
最小2乗法の数式 2種類あるんだけどどの数式を使ってるの?
定数が2つあるのなら 数式は2個必要だよ
数式が1個しかなければ、適切な数値は自分で決めると思うが(冷たいようだけど)
>>255 何言ってるのかわからない。
知らないなら回答するな。
>>256 そんな言い方はないだろ。
質問で情報不足を聞いてるんだよ。
エクセルの質問の前に数学を理解してなくて乗法不足なんだよ。
式や設定によっては、ある程度正解に近い初期値を与えておかないとローカルミニマム等にはまったりするからいけないよな。
>>257 お前は能力が不足している。ひっこんでろ。
そもそも理論式で求めるならエクセル使う必要がないだろ。 楽したいのは分かるけどさ。 引っ込みます。
能力がある人がなんでわからないんだろ?
能力があるなら
>>255 を無視して、
>>254 の情報だけで質問に答えられるだろ。
答えられない理由を255にするなよ。
【1 OSの種類 .】 WindowsXP Home 【2 Excelのバージョン 】 Excel2002?(OfficeXP) ブック1.xlsからオートフィルタで抽出したデータをブック3.xlsへコピペしたいのですが、 Workbooks(BOOK1).Worksheets("DATA1").Range("A5:A1000").Copy _ Destination:=.Range("A65536").End(xlUp).ofset(1, 0) で止まってしまします。何がマズーなのか、教えて優しい人。 Sub コピペてすと2() Dim myDir, BOOK1, BOOK2, BOOK3 '〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 myDir = "F:\エクセル\" BOOK1 = "ブック1.xls" BOOK2 = "ブック2.xls" BOOK3 = "ブック3.xls" '〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 Rows("6:1000").Delete Shift:=xlUp Workbooks.Open Filename:=myDir & BOOK1 Range("A4:E4").AutoFilter Field:=1, Criteria1:="AA" With Workbooks(BOOK3).Worksheets("DATA3") 'A列をA列へコピペ Workbooks(BOOK1).Worksheets("DATA1").Range("A5:A1000").Copy _ Destination:=.Range("A65536").End(xlUp).ofset(1, 0) 'D列をB列へコピペ Workbooks(BOOK1).Worksheets("DATA1").Range("D5:D1000").Copy _ Destination:=.Range("B65536").End(xlUp).ofset(1, 0) 'G列をC列へコピペ Workbooks(BOOK1).Worksheets("DATA1").Range("G5:G1000").Copy _ Destination:=.Range("C65536").End(xlUp).ofset(1, 0) End With End Sub
× ofset ○ Offset 落ち着いて良くコードを見直せよ
269 :
267 :2009/05/17(日) 15:21:33
>>268 ありがと。
逝ってきます・・・(AAry
270 :
名無しさん@そうだ選挙にいこう :2009/05/17(日) 15:53:58
Excel2007で最小二乗法で求めた直線の式付きでグラフにしたいのですが、どうすればいいのでしょうか
レスありがとうございます。 ですが、2007は、貼っていただいたページの最初にクリックすることになっているグラフウィザードのアイコンがないんです。
274 :
名無しさん@そうだ選挙にいこう :2009/05/17(日) 17:32:54
INT関数とROUNDDOWN関数の小数点以下切り捨て とは、何が違うのでしょうか?
>>274 負の数のとき変わる。
INTは数値を超えない最大の整数を返すので
-5.5のときINTなら-6 (-5は-5.5より大きいから)、
ROUNDDOWNなら単純に小数点切捨てた-5 になる。
276 :
274 :2009/05/17(日) 18:06:22
負の数で変わるのですね。参考書の伝票作成に 消費税をINT関数で表示させてるのですが意味 あるのでしょうか?
>>276 INTの方が切捨て桁の引数必要なくて簡単だからじゃない?
=INT(A1)
=ROUNDDOWN(A1,0)
あと切捨てではTRUNC関数というのもある。切り捨てる桁数を指定できる。
消費税は納税する側が切り捨てか切り上げか四捨五入か選択できると聞いたので
切捨て以外ならROUNDUPなりROUNDなりを使うことになるんじゃないかな。
>>254 です。
>>255 返答ありがとうございます。
http://aoki2.si.gunma-u.ac.jp/Hanasi/StatTalk/solver.html このページを参考にしてやりました。
なので最小二乗法はこのページと同じです。
理論式は1つです。
定数が2つあるのなら 数式は2個必要というのは納得がいくのですが、学校のパソコン(学校の授業で実験をやりました)に入っていたソフトはおそらく式1つで定数2つを出していたので、どうやったのか知りたかったのです。
(学校のパソコンからはデータが移せなかったので、家のExcelで再現しているのです。)
>>258 正解に近い初期値を与えておかないといけないというのはわかるのですが、正解がどれくらいかわからなくて。
何か良い方法はないものでしょうか?
与える初期値によって答えのオーダーが全然違ってしまうのです。
>>256 、
>>259 は私ではないです。
ちなみに、理論式は定数が2つ含まれた式で、定数の具体的な値だけわかりません。
その定数を求めようということです。
ちなみに-5.5から-5みたいに単純に小数点以下を切り捨てたければTRUNCな。 ROUNDDOWNは他の桁で切り捨てるときだけ使った方がいいよ。
280 :
279 :2009/05/17(日) 20:19:12
激しく遅れた。 逝ってくる
しかも間違った事書いてるし、ってかw
あのー、TRUNCとROUNDDOWNは全く同じ答えになるんですがなんで二つ用意されてるんですか? =TRUNC(1251,-2) =ROUNDDOWN(1251,-2) =TRUNC(-12.3456,2) =ROUNDDOWN(-12.3456,2) これらは同じ答えです。 ただ =TRUNC(A1) これは=ROUNDDOWN(A1,)としないとだめみたいですが。
283 :
279 :2009/05/17(日) 20:35:48
>>281 そうみたいね。すまん。
>>282 見ると切り捨てにはなんでもTRUNCでいけそうだね。
知らんかったわ。
>>282 本来の切り捨て関数はTRUNC
四捨五入関数のROUNDのバリエーションとして追加されたのがROUNDDOWN
こういった関数をExcelで初めて使う人にはROUND系の方が直感的に分かりやすいだろうが
他の言語やソフトではTRUNCが主流なので、互換性などの観点からこれも外せず
結果同じ機能の関数が複数あるという状態になってる
言語やソフトによってはROUNDDOWNがExcelのINTと同じで-5.5→-6なものもあるが
Excelに関してはTRUNCが第二引数省略可能な以外は同じ
別に状況に応じて使い分けろとかそういう意味で2つ用意されてるわけではなく
「切り捨て関数=TRUNC」という予備知識を持ってExcel使い始める人向けと
呼び知識無しの人には「丸め=ROUND**」と覚えやすいようにと2つ用意されてるだけ
285 :
282 :2009/05/17(日) 21:07:58
>>284 ありがとうございます。参考になりました。
これからはTRUNC一本でいこうと思います。
>>284 ほどのまともなレスを見たのは何年ぶりだろう…
Excelと関係ないけど、消費税を切り上げでもらう店とかってあるの?
>>287 最近は内税が主流だから実際どうなってるかはわからんよね。
本体価格と税が書いてあるから計算すればわかるだろ あほか
>>289 から最後の3文字(と、その一つ前の空白)をRIGHT関数を用いて消去する方法を教えてください。
それで何品も買った時誤差がでたりして こまけーこたーどうでもいいが。
>>278 >定数が2つあるのなら、数式は2個必要というのは納得がいくのですが
それ本当に納得してる?
>>290 むりやりいれてみますた(
>>289 =A1)
=IF(RIGHT(A1,4)=" あほか",LEFT(A1,24),A1)
>>296 やれやれ。困ったやつだな。
君のいう数式ってなんだ?
私は
>>255 の双曲線関数のつもりで話しているんだが。
298 :
名無しさん@そうだ選挙にいこう :2009/05/18(月) 00:37:35
やれやれ
未知数が2つの場合式が2つないと答えが決まらないというのは正しいが、ここでは別だろ。 予測値と実測値との差の二乗の和が最小になる、という条件が加わってるわけだし。 簡単な具体例で考えてみればわかる。 1次直線近似の場合、傾きとy切片の2つの未知数があるわけだが、答えは定まるだろう。 「式」はy=ax+bの一つだけだ。
>>300 まともな人がいて安心した。
小学生呼ばわりされて気分悪かったよ。
数学の話はスレ違いだから止めようぜ。 荒れる。
>>302 ソルバーの話だよ。
エクセルの話じゃないか。
>>287 店じゃないけど、ウチの会社だと購入品は1の位で切り上げ、販売は四捨五入。
例えば1個7円63銭のものを1ロットで1234個買うとき、注文書も請求書も\9,416とか。
すまんw x 1の位で o 小数点第一位で
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 A B C D の各列を、次のように並び替えるにはどうすればいいですか? ↓ D B A C
手動操作をマクロの自動記録でやれば?
列は数値で扱えるから 列の対象範囲さえ定義できればどうにでもなる
309 :
306 :2009/05/18(月) 02:20:59
>>307 手動でやる場合、どうすればいい?
A列の左に2列挿入してDとBとCを移動?
書いたのは一例で、もっと沢山あるんだけど・・・
>>308 具体的にお願いします。
>>309 普通にA列を選択、切り取り→B列の後ろに挿入→
D列を選択、切り取り→B列の前に挿入とかやればいいんでは?
マクロ使えるけど列の移動やコピーはできない人?
沢山あるって列の移動に何か法則がある?
>>309 データ→並び替え→オプションを押下→方向を「列単位」で列のソートができるから
1行目に列ソートしたい順に連番ふれば。
312 :
名無しさん@そうだ選挙にいこう :2009/05/18(月) 02:40:49
列選択してShift+ドラッグで移動するのが簡単
TRUNCとROUNDDOWNはどっちが計算速いの? 同じなのかな?
>>313 聞くまでもねーだろ・・試せば分かることだ。
つーか基本操作なんてネットで調べればいくらでも出てくるだろ。
おそらくTRUCの方が早いだろうが、ROUNDDOWNは見た人が理解しやすいっていう利点はあると思うよ。
特にプログラムまではわからないけど、Excelの関数ぐらいならって人にはね。
>>845 を批判してるわけじゃない
アンチテーゼだな。
318 :
名無しさん@そうだ選挙にいこう :2009/05/18(月) 12:14:12
警告メッセージに「今後このメッセージを表示しない」チェックがついたものが多いですが、 これをいったん表示しない設定にした後で、元に戻す(毎回表示する)方法ってあるのでしょうか?
ある それぞれ ぐぐれ
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 平均値170、標準偏差12であるような正規分布に従うと考えられるデータを200個生成し、 生成したデータについて区間幅を2として、ヒストグラムを作ろうとしています。 また、度数分布を重ねてグラフを描きたいです。 生成データは=NORMINV(RAND(),$B$4,$B$5)というふうに書いて200個出し 度数は=FREQUENCY(E4:E203,F4:F203)というふうに書きました。 正規分布曲線グラフの作り方を検索して調べてみた結果、 =1/(SQRT(2*PI())*$C$3)*EXP((-1)*(B6-$B$3)^2/(2*$C$3^2)) というふうに書けばいいようなのですが、うまく曲線になるような値が出ず、グラフが書けません。 何かアドバイスがほしいです。宜しく御願いします。
>>321 度数を確率密度に変換してやれば、度数分布と正規分布をうまく並べて表示できるんじゃないかな。
323 :
名無しさん@そうだ選挙にいこう :2009/05/18(月) 22:08:56
こんばんは、質問させてください。 例えば、20、50、34、98、5、27、、、、、、のように数字がならんでいるとして。。。 統計をとりたいのです。20の次は○○が何回で、○○が何回で、、、というような感じで。 全体からみた % でもOKです。 なにかよい方法はないでしょうか?? すみませんがどうぞよろしくお願いします。
>323 数字の並びはセルに格納(A1:A1000の間とか)できますか? 数字は何個ぐらいありますか? それから、レスbPからのテンプレートは読みましたか? 情報の後出しは回答もらえませんよ。
苦手な分野なら無理に回答しようとしなくていいのになぁ
シートの下限が65000行になってしまい使いにくくなってしまったのですが 元に戻すにはどうすればいいのでしょうか? 使用Excelは2002です。 行単位で下限まで関数を設定したところ6万行設定になってしまったので 下限まで伸びていた関数を削除したのですが、 シートの下限が6万行のままで元に戻らなくなりました。 お手数ですが対処方法をご教授下さい。
>>326 50000行にしたいとするなら、50000行-65536行を選択して行削除、1行目に戻して保存、開く
それか1-50000行を新しいブックにコピペ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】エクセル シート 結合 解除 マクロ 質問 エクセルの入力フォーマットがあります 元となる入力フォーマットと入力されたフォーマットを比較 1.記入フォーマットのセル結合が解除されてないかチェック 2.行・列が追加されてないかチェック 3.フォーマットが変ってたらNG表示(記入欄の文字入力はOK) シートを保護しろと言われると思いますが VBAでこのような確認は可能ですか?
>>327 削除はやったのですが65536行のままでした。
新しいワークシートにコピペしてみたのですがセルの横幅がデフォルトのままで
整理がとても大変そうです。
新しいワークシートにコピー元のセル横幅設定もこぴーするにはどうすればいいでしょうか?
>>323 A1-A100に並んでるとする。で、1-100とする
B1に1、B2に2・・と入力(オートフイル)
C1=COUNTIF(A:A,B1)
舌にオートフィル
>>328 結合の有無はこんな感じ
列行の挿入の有無は・・どこかのセル(E5とでもする)に"合計"とでも入力しておき、そのE5に"合計"が無かったらfalse・・みたいな感じかなぁ
なんか目印がないと難しいような
Sub Macro1()
' マクロ記録日 : 2009/5/18 ユーザー名 : 名前
If Range("A1").MergeCells = True Then
MsgBox "fff"
End If
End Sub
334 :
かん :2009/05/18(月) 23:28:10
『ファイルが読み取れない』 質問内容・・・ EXCEL2000です。WindowsXP。 EXCELファイルを読み出して上書きしたり、名前を変えて保存したファイルが読み取れません。 エラー報告には以下のファイルが含まれます。 C:DOCUMEN~\(ユーザー名)LOCALS~1Temp\887f_appcompat.txt よろしくお願いします。
>>333 ton
これを参考にちょっとがんばってみる
NETWORKDAYS関数で土曜をカウントさせない 方法ってありますか?
>>334 そのファイルをどこかにアップするか内容をここに貼り付けてくれ
君以外のPCには最初から入ってるわけじやない。そのファイルはエラーがでてから作られるんだよ
多分再インストールが必要
>>336 ヒント:NETWORKDAYS関数+土曜日
・・が基本なんだと思うけど、
土曜日と祝日の重なりでどう処理するか等、処理が貴方の出したい答えにより答えが代わるので、
式は今のところ出せない
>>323 重複しないデータが32,500以内ならピボット使うのがいいと思う。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 保存 マクロ シート マクロを使ってシートのみを保存したいのですが。 それで保存データは数式以外を保存して、つまり開いたときにセルの参照式とかが入ってないようにしたいんです。(見た目は一緒) どうすればよいでしょうか?
>>339 元の数式入ったシートもマクロファイルに残したうえで
値のみのシートを作成して保存するということ?
>>339 一番簡単なのは、ブックを新規作成して、そこへ形式を選択して貼り付け→値
してから保存
342 :
339 :2009/05/19(火) 01:09:52
すいません、追加で、デスクトップ上の「保存」フォルダに保存でお願いします。 もしフォルダがなければデスクトップにフォルダを作って保存するということで。 それと、保存ファイル名はセルA1とセルA2の値をくっつけて保存するということはできますでしょうか? 大変勝手な要望ですみません。よろしくお願いします。
343 :
339 :2009/05/19(火) 01:15:04
すいません。書き込んでる間にレスいただいてました…
>>340 ありがとうございます。
値と表示の形式で、つまり見た目が一緒にしたいのです。
セルの大きさとかフォントとか。
>>341 ありがとうございます。
形式を選択して値保存の場合、色とか何とかが違ってしまいます。
方法はないでしょうか?
>>342 えーと、ここは質問スレなのでマクロの作成依頼は受け付けてませんのです
>>343 まず普通にシート全体をコピーしてから、もういちど値だけをコピーすれば
数式が消えて見た目はそのままのシートが作れます
346 :
339 :2009/05/19(火) 01:21:49
>>345 ありがとうございます!
そんな方法があったのですね?
ちょっとやってみます。
>>344 すいません。申し訳ありません。
でも何とかしたいのです。
ヒントだけでもお願いします。
>>344 答えられないならスルーしろ
無駄にスレ消費するな
(1)ファイル名=A1&A2 を指定する (2)シートをコピーする (3)(2)で作成したシート全体をコピーして値の貼り付け (4)(3)のシートを新規ブックに移動 (5)デスクトップ上に「保存」フォルダがなければ作成 (6)(4)で作成したファイルを(5)のフォルダに保存。ファイル名は(1) ということかな。
349 :
339 :2009/05/19(火) 01:32:52
>>348 すばらしい!そのとおりです!
なんとかなりますでしょうか?
ぜひよろしくお願いします!
>>349 ほれ
Sub Macro1()
Cells.Copy
Workbooks.Add
ActiveSheet.Paste
Cells.PasteSpecial Paste:=xlPasteValues
Desktop = Environ("USERPROFILE") & "\デスクトップ"
On Error Resume Next
MkDir Desktop & "\保存"
On Error GoTo 0
ChDir Desktop & "\保存"
ActiveWorkbook.SaveAs Filename:=Range("A1").Value & Range("A2").Value
End Sub
この手の聞き方するやつは一度でも親切にすると際限なく仕様の追加を要求してくるから気をつけろ
352 :
339 :2009/05/19(火) 01:43:52
>>350 様
神!
ありがとうございます!
どうしようかとおもってました。涙
このご恩は忘れません!
複数シートを一括処理するならともかく、これだけなら手作業でやっても 大したことない操作に見えるんだが何を困っていたんだろう?
注意点 A1やA2にファイル名に使えない文字が入っていたらたぶんエラーで止まる デスクトップのフォルダ名が「デスクトップ」なのは日本語版WindowsのXPのみなので、 あとでVistaやWin7に移行したら使えなくなる
>>350 Environ("USERPROFILE") って知らんかった。超便利。
参考になりました。横からありがとう。
本当は、単に数式を消したかっただけじゃない? 名前を付けて保存はあとで思い付いただけで。
デスクトップに「保存」という名前のファイルがあった場合もエラーで止まるな そんなバカなと思うかも知れないけど、素人ってのは本当にカオスなことを平気でやるから 油断できん
すでに同名のファイルがあって編集中も危ない
359 :
339 :2009/05/19(火) 02:49:38
339です。 おかげさまでうまくいきました。 エラーでとまる危険性も理解できましたので注意しておきます。 あと ActiveWorkbook.SaveAs Filename:=Range("A1").Value & Range("A2").Value のあと、新しく追加したワークブックが開きっぱなしになるので、新しいワークブックだけを閉じるにはどのようにしたらよいでしょうか。 いろいろ試してみましたがうまくいきません。 よろしくお願いします。
>>359 Google [ VBA 閉じる ] 「検索」
本を読んだり、検索しても答えが見つからず、行き詰まってしまいました。 ずぶずぶの素人ですが質問させて下さい。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 難しいのでなるべく避けたい 【5 検索キーワード 】 Excel 抽出 並び替え など ねこ 8:00 12:00 ×× 15:00 イヌ ×× ×× 13:00 ×× このようなデータ(×は空欄セル)を、 ねこ 8:00 ねこ 12:00 イヌ 13:00 ねこ 15:00 別シートにこのように並べ替えたいです。 「ねこ」3回の行を増やすのと、データの並び替えで できるような気がするのですがやり方が分かりません。 種類が増えたり、時間が増える場合もあります。 なにか簡単なやり方はないでしょうか? VBA打ち込みとか複雑なマクロが必要なら諦めます・・・
362 :
339 :2009/05/19(火) 04:08:42
>>360 新しく追加したブックを指定するにはどうしたらいいでしょうか?
>>361 シート1にその表があるとする
シート2の
A1=IF(INDIRECT("Sheet1!r1c"&ROW()+1,0)>INDIRECT("Sheet1!r2c"&ROW()+1,0),"ねこ","イヌ")
B1=INDIRECT("Sheet1!r1c"&ROW()+1,0)+INDIRECT("Sheet1!r2c"&ROW()+1,0)
後は舌にオートフィル
同じ数字が来ない+いぬねこ二種類しかないことが前提だけど大丈夫かねー?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 表示形式 変更 セルの表示形式の質問です。 例:3,259,821という数字を元の数字を変更せずに3,260という様に、 百の位を四捨五入した表示したいのです。 セルの書式設定→ユーザー定義で『♯,』にすると3260という桁区切りの無い表示になり、 桁区切りスタイルのボタンを使うとまた3,259,821の表示に戻ってしまいます。 宜しくお願いします。 (ぶっちゃけ、上の例はkg表示をd表示にするという作業です)
一個抜けてた。すまん。「#,###,」でいけんじゃない? あくまで表示変わるだけだから集計するときには気をつけないといかんけど
あそうか「#,」だけじゃカンマ区切りしてくれないな。
>>368 ありがとうございます!できました。
ちょっと時間が差し迫っていたので、隣にセルを追加して3,259,821/1000の数式を入れて
計算された値(3259.821)をコピー→形式を選択して貼り付け(値)でしのぎました。
今後も同様の作業が発生するのでその時は使わせてもらいます。
371 :
名無しさん@そうだ選挙にいこう :2009/05/19(火) 19:29:53
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 入力規則 ホイールスクロール プルダウン 入力規則 ホイールスクロール プルダウンメニュー エクセル プルダウンメニュー スクロールできない エクセル プルダウンメニュー スクロールしたい プルダウンメニュー スクロール プルダウンメニュー ホイールスクロール -VBA エクセルの入力規則で設置出来るプルダウンメニューについての質問です。 およそ40以上にもわたる項目をプルダウンメニューで選択出来たことには出来たのですが、 それをマウスのホイールでスクロールさせる事が出来ません。 この操作はエクセルで可能でしょうか?
>>362 ActiveWorkbook.Close
>>371 ホイールはわからないけどAlt+↓でリスト開いてPageDown、PageUp、End、Homeを使うとか。
374 :
名無しさん@そうだ選挙にいこう :2009/05/19(火) 20:24:55
>>373 おお・・・・こういう方法もあるんですね。ありがとうございます。
自分で操作する時の快適な操作方法は理解しました。目から鱗です
ただ、今回作成するエクセルは不特定多数の方に触れるものでして
その方々の中には、PC操作に不慣れな方もいるものと想定しています。
その上で、キーボードではなく直感的に操作出来る「マウス」によるスクロール方法を知りたく思い、
こうして質問させて頂いた次第です。
エクセルの設定を何かしら変更する必要があるのでしょうか・・・・
それらしき設定が見つからず困惑しています。
非常に細かく、こだわりに近いものが理由で本当にすみません。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000、2002、2003 【3 VBAが使えるか .】 ちょっとだけ 社内イントラネットにあるサーバにブックを置いて、そこでしか動作させない ようにしたいのですが、どのようなマクロを書けば良いでしょうか? サーバにあるフォルダは、V:\eigyo\3G\月報\2009\ です。 各ブックを集計したりするので、ボタンをクリックすると ブックが置かれたところを参照して、V:\eigyo\3G\月報\2009\ なら そのまま継続し、違うなら Exit Sub みたいなものです。
>>375 ネットワークドライブでうまくいくかどうかはわからんが、こんな感じか
Sub aaa()
path1 = "V:\eigyo\3G\月報\2009\"
len1 = Len(path1)
If Left(ThisWorkbook.FullName, len1) <> path1 Then Exit Sub
End Sub
>>364 レスありがとうございます。
試してみます!
>>361 ピボットテーブルがあれば何でもできるぜ。
ってピボット厨が言い出しそうだが実際これは出来るんだよな。
書かんけど。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ファイルがリンクされたハイパーリンクをクリックすると、 通常ですと、対応したソフトでファイルを開こうとしてしまいますが、 ファイルをダウンロードさせる様にはできないでしょうか? よろしくお願いします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 関数 連続 A1 B1 C1 50円 20個 1000円 上記の状態でC1に=SUM(A1*B1)の掛算の数式を入力するのですが、 この掛算を入力するCのセルが3万件位あります。 オートフィルで連続データをコピーする以外に 一括で(3万件の位置までマウスでカーソルをドラッグせずに) 計算させる簡単な方法はありますでしょうか? (セルCの1件目の位置から3万件目までを選択して関数を入力?)
>>381 1.C1を選択してコピー
2.名前ボックスにC2:C30000と入力
3.貼り付け
>>382 ありがとうございます。
余りにも簡単で驚きました。精進します。
>>374 マイクロソフトによればそういう仕様だそうです。
http://support.microsoft.com/kb/418008/ja 仮にVBAか何か使って実現出来たとしても、Excelの標準じゃない操作を
PC操作に不慣れな人にさせるのは逆に弊害となる可能性が大きいよ。
もし大量のデータを楽に効率よく入力させたいという目的であれば
リストから選ぶ方法よりも、項目全てにコード番号を割り振っておいて
コード番号で入力させるってやり方の方がいいと思うけどね。
>>381 なんで=A1*B1じゃなくて=SUM(A1*B1)なのか教えてくれる?
深いわけがあると思うので、そのわけを知りたい。
なんかねちっこいなあ・・・ 普通に「=A1*B1だけでいいんだよ」でいいじゃねえか・・・
俺も似たような作業してるが、縦方向の集計もやってると SUM関数を入力する癖がついているんじゃないかと予想してみる
388 :
375 :2009/05/20(水) 18:57:30
>>376 会社で試してきました。
問題なく動作しました。
ありがとですた。
389 :
375 :2009/05/20(水) 19:16:23
追加質問です。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000、2002、2003 【3 VBAが使えるか .】 ちょっとだけ 他のブックから必要な列だけ既存のデータに追加でコピペしたとき、 A列にデータが無いときがあります。オートフィルタが利かなくなるので、 A列の空白セルをダミー(全角スペース)で埋めたいのですが、 一気に貼り付ける方法があるでしょうか? AA = Range("A65536").End(xlUp).Row Do While Cells(AA + 1, 2) <> "" Cells(AA, 1) = " " '全角スペース AA = AA + 1 Loop
>>389 Sub a()
Range("a:a") = " "
End Sub
追記 B1をA1にコピーしたいときは Range("a1")=range("b1") って書き方が早いよ。マクロの記録だと出てこないけど、非常に簡潔で重要なテクニックと思う
>>390 それだとA列全部に空白入るんじゃない?
Range("A1:A" & AA) = " "
かな。
>>389 >A列にデータが無いときがあります。オートフィルタが利かなくなるので、
データ範囲を全て選択してからオートフィルタすればデータ無くても利くんじゃね?
レス番号も間違えたゴメンナサイ
>>391 [a1] = [b1] でもできる。
ところでこの簡略式って変数使えるの?教えてエロイ人。
>>397 thx
使えないのか。だったら Cells(i, 1) とか Range("A" & r) のが使いやすいな。
変数使いたいときはevalute関数使えばいけんじゃなかったけっかな そうすると書くの面倒だけど
400 :
名無しさん@そうだ選挙にいこう :2009/05/20(水) 22:05:37
Excel2007で、 オートシェイプを描くと最初は紺の塗りつぶしで出てきますが、 いきなり塗りつぶしなしで描く方法はありますか?
2003だと右クリのオートシェイプの規定値に設定、で設定できる
402 :
名無しさん@そうだ選挙にいこう :2009/05/20(水) 22:34:04
a 1 10 b 2 20 c 3 30 上記のような表で、bの合計値(=22)を求める方法を教えて下さい。 ※予め合計値があり、それをvlookupで取得するのではんく、 検索条件に該当する行の合計値を取得したいです。
>>402 =VLOOKUP("b",A1:C3,2)+VLOOKUP("b",A1:C3,3)
404 :
名無しさん@そうだ選挙にいこう :2009/05/20(水) 22:56:56
>>403 やっぱりそれしかないですか・・・
列数が多いと式が長くなる・・・
>>402 =SUM(INDEX(B1:C3,MATCH("b",A1:A3,0),0))
>>405 =SUM(INDEX(B1:Z3,MATCH("b",A1:A3,0),0))
407 :
405 :2009/05/20(水) 23:21:54
>>406 大変参考になりました。
なるほどB1:Z3とするんですか。
横から質問なんだけど
>>405 のINDEXを見ると
INDEX(B1:C3,2,0)
つまり列を0列目に指定すると、全ての列ってことになるの?
409 :
名無しさん@そうだ選挙にいこう :2009/05/20(水) 23:25:09
>>405-406 あざーっす
sumproductで自己解決してましたが、こんな方法もあるんですね
INDEX関数初めて見ました
=SUMPRODUCT((A1:A3="b")*(B1:C3))
>>408 全ての列じゃないよ。
B列とC列だけ。
>>409 SUMPRODUCTの式と
>>405 は違うよ。
"b"が2個あるとき違う。
先に聞こうかと思ってたんだけど、
>>403 と同じ答えの式を書いた。
>>410 ああ、そうか
範囲内の全ての二行目ってことでok?
ヘルプ見たけど範囲外だとエラーってかいてるんだけどな
415 :
名無しさん@そうだ選挙にいこう :2009/05/21(木) 02:39:02
Excel2003でマクロセキュリティタブそのものを非表示に出来る? コントロールパネルの画面をレジストリで禁止するみたいに
>>415 普通に売ってるバージョンだとたぶんできないと思う。
企業向けのOfficeパッケージだとセキュリティ関係の設定変更を禁止できるんだけど。
質問お願いいたします。 エクセルのシート4枚分を、A4用紙1枚に割付印刷する方法を 教えていただけないでしょうか?
>>417 プリンタのプロパティで割り付け印刷を選んでページ数を4
機種によってはできない
419 :
名無しさん@そうだ選挙にいこう :2009/05/21(木) 11:51:43
XPのexcel2003です。 マクロなどは全く使えません。 顧客番号をクリックすると、ワードで作った書類が開くようにハイパーリンクしていました。 最近まで問題なく開いていたのですが、突然「指定されたファイルを開く事ができません」と 表示されて開く事ができなくなりました。 もう一度ハイパーリンクしたら開けたのですが、一度エクセルを閉じて再度開くと、また 同じメッセージが出て開けなくなりました。 なぜでしょうか? よろしくお願いします。
表を作ってそれぞれにセルに数値を入力していって 最後にまとめて桁区切りをクリックしてますが、最初から 桁が区切れるようにできないでしょうか?
>>420 表を作り終わって数値の入力前に、表全体を選択した後
右クリック「セルの書式設定」→「表示形式」→「数値」→
「桁区切りを使用する」にチェック。
【1 OSの種類】 WindowsXP 【2 Excelのバージョン】 Excel2000 【3 VBAが使えるか】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード】 EXCEL セル 行 列 一致 1月 2月 3月 4月・・・・12月 1日 0.8 1.5 3.9 1.1 10.9 2日 2.4 2.0 6.3 10.5 7.2 ・ ・ 31日 1.9 - 34.5 - 11.6 といった感じに、行は日にち、列は月にして計算式では計算できない係数を入力している表があります。 4月1日と入力すると別なセルにその日の値(この場合は1.1)が表示されるようにしたいのですが、 どのようにすれば良いのでしょうか? 月と日付は別々のセルに入力してあり、ドロップダウンリストから選ぶ様になっています。 A1のセルで選んだ値(月)とA2のセルで選んだ値(日にち)に合うセルを別途作ってある表から抜き出す方法 と表現すれば良いのでしょうか・・・
423 :
422 :2009/05/21(木) 20:19:23
列のみ(又は行のみ)一致するセルを表示させることは出来るのですが、 両方の条件に一致するセルを教示させるのが出来ないんです・・・
424 :
名無しさん@そうだ選挙にいこう :2009/05/21(木) 20:30:02
**A* E*** *D** ***A のような表で、各行のE列にA〜Dを検索してアルファベットを入れたいのですがいい方法を教えてください。おねがいします。 (各行にアルファベットは1つずつあります。)
意味がわからん AがあったらE列にAを入れるのか
427 :
422 :2009/05/21(木) 20:38:40
1月2月3月・・・12月、1日2日3日・・・31日となっていますが、 ユーザー定義で”月”や”日”と表示するようにしています。 なのでセル内は数字のみとなっています。
>>423 =INDEX($A$1:$M$32,MATCH("1日",A:A,0),MATCH("4月",$A$1:$M$1,0))
↑$A$1:$M$32 の部分は元のデータ範囲
式では "1日" "4月" と入れてあるけどどっかのセルに値入れてそれを引っ張ってくればよい。
たとえばA1に4/1と入れた場合は
=INDEX($A$1:$M$32,MATCH(DAY(A1)&"日",A:A,0),MATCH(MONTH(A1)&"月",$A$1:$M$1,0))
429 :
名無しさん@そうだ選挙にいこう :2009/05/21(木) 20:43:03
すみません。 どなたかアドバイスしてほしいのですが、 OSビスタw オフィス2007PCバンドル 1.オフィス2007のエクセルのバージョンってどこで見るのでしょうか?ヘルプ→バージョン見たなやつが見つからず困っています。 2.そのオフィス2007のエクセルでセルコピー→ペーストなどしたあと解除(セル周りの点滅解除)したいのにESCキーを押しても解除できません。なぜ? 3.やはりセル編集での右クリックコピーについてです。 前のエクセル2000ではセル選択後、右クリック→そのまま右クリックでもコピー・貼り付けを選択できたのですが、 これが デフォルトの左クリックでないとできないのでどうにもリズムが狂ってしまい困っています。 マウス設定ではなさそうだし何か手段はありますか? とにかくESCでコピー解除できないのが面倒で面倒で気が狂いそうです。
>>427 月や日が数値でA1に日付入れた場合($A$1:$M$32の部分は範囲)
=INDEX($A$1:$M$32,MATCH(DAY(A1),A:A,0),MATCH(MONTH(A1),$A$1:$M$1,0))
4月1日の場合 =VLOOKUP(1+1,$A$1:$M$32.4+1,0)
エクセルに ある公式を書きたいのですが。 数式でよく使われるギリシャ文字等、、、、を使っても それなりに見える方法などあるのですか?
434 :
422 :2009/05/21(木) 21:06:59
>>430 ありがとうございます。出来ました♪
一致条件を2重にすることも出来たんですね。
ISERRORで入力値が無い場合は”0”と返す式まで入れてたのに・・・
理解不足でしたorz
>>424 E1に
=A1&B1&C1&D1 なり
=CONCATENATE(A1,B1,C1,D1) なり
入れて文字結合したデータつくり、
F1に以下
=MID(E1,MIN(FIND({"A","B","C","D"},E1&"ABCD")),1)
>>435 あ、元が半角アルファベットならこの式のABCDも半角にしてね。
>>429 Excel2007のバージョンを確認するには
Officeボタン → Excelのオプション → リソース → Microsoft Office 2007 のバージョン情報
試してみたけどEscキーで点線の枠はちゃんと消えた。
日本語入力の関係かも?
>>419 先にワードを起動して新規空白文書が開いた状態で試してみ?
>>436 おかげさまで解決しました ありがとうございました
441 :
名無しさん@そうだ選挙にいこう :2009/05/21(木) 22:35:56
国語 数学 英語 1 合格 不合格 合格 2 合格 再試験 合格 3 不合格 不合格 不合格 4 合格 合格 合格 この場合例えば 合格(国語) 合格(数学) 合格(英語)の人 が何パーセントの確率でいる調べたいのですが やり方が分かりませんよろしければ教えてくださいお願いします
>>441 =COUNTIF(範囲,"合格")/COUNTA(範囲)
セルの書式設定をパーセンテージ設定で表示
でいけるのでは?
>>424 F1=IF(ISERROR(AND(CODE(A1)>=65,CODE(A1)<=122)),"",A1)
F1〜I4にオートフィル
E1=F1&G1&H1&I1
E1〜E4までオートフィル
その代わり和歌のセルの一文字目がアルファベットだとダメー
エクセルで質問です A 1 あ 2 3 い 4 う 5 い 6 い こういう場合に、オートフィルを書けて空白を消した状態で IF文で上下の文字列が同じなら真、違うなら偽を作ります。 オートフィルで2を消した場合でも、 IF(5=6,1,0)を上にコピーしていくと、2は飛ばされずに 計算されてしまうのですが、うまい具合に 3と1を計算式のコピーでうまい具合にIF文にしてもらえる方法は無いでしょうか?
ある
>>444 オートフィル後の表をコピーして貼り付けると、見えない部分を飛ばして貼り付けられるんだけど
それじゃだめかなぁ
WindowsXP、Excel2000で質問です。 Userform1に、TextBox1とCmd_OKボタンをつくり、Range("B3")の値が"a"なら パスワードを聞いてくるマクロを書きました。標準モジュールでUserForm1.Showを 出したあと、パスワードが合致したら標準モジュールに戻って、続けたいのですが 以下の●には何を書けば良いのでしょうか? 'フォームに書いたもの Dim i As Long Private Sub UserForm_Initialize() i = 1 End Sub Private Sub Cmd_OK_Click() PWD = Me.TextBox1.Value If PWD = Range("B3").Value & "z" Then ● Else If i = 3 Then Unload Me Exit Sub End If MsgBox "パスワードが違います!" i = i + 1 Me.TextBox1.SetFocus End If End Sub
448 :
447 :2009/05/22(金) 00:16:51
'標準モジュールに書いたもの Sub 途中でパスワード() BB = Range("B3") If BB = "a" Then 'パスワードを聞く UserForm1.Show Else Exit Sub End If End Sub
>>444 >>446 の言うように空白以外のセルでオートフィルして
可視範囲を別シートに貼り付けて計算するのが簡単だと思う。
それでなかったらVBAかな。
451 :
447 :2009/05/22(金) 00:57:30
452 :
名無しさん@そうだ選挙にいこう :2009/05/22(金) 01:00:07
>>438 ありがとうございます。
原因不明ですが、ESCで解除できるようになりました。
同時にエクスプローラーでフォルダなどのリネーム時にも解除できなかった点が解除できるようになったようなので、エクセルの問題ではなかったのかも知れません。 ありがとうございました。
454 :
447 :2009/05/22(金) 01:10:50
すみません、また質問です。 PWD = Me.TextBox1.Valueで得た値を、標準モジュールに戻って Msgbox PWD と 書いても何も表示されません。UserFormで変数に入れた値を引き継ぐことは出来ますか? パスワードが違ってて、Me.TextBox1.SetFocus で戻ったら、TextBox1を 消去することは出来ますか? パスワードを聞いてくるとき、右上の [X] 閉じるボタンを無効に出来ますか?
455 :
447 :2009/05/22(金) 01:12:05
x TextBox1を消去することは出来ますか? o TextBox1に書いた文字を消去することは出来ますか?
\ ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ `'ー '´ ○ O o , ‐'''^^"'''ー、、 ._..-'" ̄ ̄フ′ `'‐、 ./ / \ / .! | 。'i ! r',ヽ ,! i'゙ | ヾ'-' .l '、 , '、 ,l. 、 ,‐' ヽ、 ,/ `'┬ ' ´ ヽ、 ノ ヽ ! l´r`---z / イ `'ルナサ ヽ 'ヽ___/ /レ ´_\`‐ ,__,// /:___________ ,.r ' ー-` '´ - ‐  ̄ 'ー 、 ,/ _,. ヽ ,レ' ´ i l / , ,l l 。'i ! r',ヽ l l l ,、r;, i'゙ ! ヾ'-' l. l l _,r'´、l.レ'、 '、 , '、 ,/ l ,.!v-、,_ l L.., } ! ハ、 , ‐' ヽ、 ノ /! /`,/_,l L, l゙l ヘ」/ l. / `''┬ ' ´ `'ー----- '´ ,/ l / !:イ、_ノ l、
457 :
447 :2009/05/22(金) 01:34:20
一部、自己解決 >TextBox1に書いた文字を消去することは出来ますか? Me.TextBox1 = "" で対処できました。(正しいか否かは別として) すんません、また明日来ます。
>>454 標準モジュールに
Public PWD
パスワードが違ったら
Me.TextBox1.SetFocus
Me.TextBox1.Value = ""
×を無効にはできるけどそうするとUnload Me も効かなくなるし
APIいじるしかないのかなあ。
>>432 エクセルには
数式エディッタってのがあるよ
挿入のオブジェクトのmicrosoft 数式 3.0等
461 :
419 :2009/05/22(金) 11:06:32
>439さん 返事が遅くなりすみません。 試してみましたが、開きませんでした。
462 :
447 :2009/05/22(金) 20:05:55
>>458-459 ありがとうございます。
Public PWDで、無事に動作しました。
ユーザーフォームに慣れてないせいもあって、×を無効にするのは、
ちょっとハードルが高そうです。
>>447-448 の例で、パスワードが合致したか否かはPWDで判断で
出来るようにありました。しかし、パスワードを入力しないで
×をクリックすると、そのまま先に進んでしまいます。
これを防ぐ方法はありますか?
inputboxとif分岐の方が早い気がする
>>462 ユーザーフォームに
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = 1
End Sub
>>464 >>462 ユーザーフォームのモジュールに、だ。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = 1
End Sub
466 :
447 :2009/05/22(金) 22:16:52
>>465 ありがとうございます。
構文の意味はよく分からないですが、×が無効になりました。
>>466 http://www.moug.net/tech/exvba/0090041.htm ●終了を必ず”終了”ボタンから行わせるには● 参照
If CloseMode = 0 Then Cancel = 1
を定数で書くと
If CloseMode = vbFormControlMenu Then Cancel = True
QueryClose の定数、値、内容
vbFormControlMenu、0、ユーザー フォームのコントロール メニューの [閉じる] がクリックされました。
ユーザーフォームの閉じるがクリックされたらキャンセルってこと。だと思う。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 二次曲線 グラフ 閉区間 開区間 領域 m<x<nにおけるy=ax^2+bx+cの取る範囲を表示させたいのですが普通にグラフを作成したばあいx=m,nの点も含まれてしまいます ○━━━○ m n このような線を引きたいのですがどうすればよろしいでしょうか?
【1 OSの種類 .】 WindowsMe 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 散布図のグラフ(曲線)を書いたんですが、このグラフ上の任意の点での値(の組)を 知るにはどうすればいいのでしょうか 画面の矢印を各入力データを表す点にもっていくと「系列1 要素"53.3" (53.3 , 0.735)」 ( (53.3 , 0.735) は入力データ ) などと表示されるのですが、同じような表示をグラフ上の任意の点で表示させる方法が あるのでしょうか。 よろしくおねがいします。
>>468 私のOfficeXPですと、
グラフ線上で右クリックして”データ系列の書式設定”をクリック
パターンタブ内のマーカーを自動→指定へ変更
「背景」を白に指定、サイズを任意の大きさへ変更(15ポイントくらいでしょうか)、
さらに「前景」を色なしにすればマーカーの輪郭線も消えますが、どうでしょうか。
グラフ線上で右クリックして”データ系列の書式設定”をクリック パターンタブ内のマーカーを自動→指定へ変更 「スタイル」を■→●へ変更 ←←←※コレ抜けてました 「背景」を白に指定、サイズを任意の大きさへ変更(15ポイントくらいでしょうか)、 さらに「前景」を色なしにすればマーカーの輪郭線も消えますが、どうでしょうか。
>>470-471 回答ありがとうございます
しかしその方法ですと両端以外の点(線の中)も同時に変更されてしまうと思うのですが
両端のみマーカーを変える方法はありますでしょうか?
>>472 両端m、nのみでしたらそれぞれのマーカーを(左)クリックで選択してから
右クリックして同上の作業を行えばm、nのみ変えられます。
>>473 左クリックした時点で全てのマーカーの色が反転してしまうようですが・・・
やり方がわるいのかな・・
>>474 マーカーを2,3回左クリックすればクリックしたところのみ選択出来る
はずですが。
>>475 できました
何度も丁寧にありがとうございます
477 :
447 :2009/05/23(土) 11:08:21
>>467 解説ありがとうございます。
25日までに完成させなかればならないので、また疑問点が出ましたら
お邪魔させて頂きます。その際は、よろしくお願いいたします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 シート"MENU"のC5セルに入れた値をIFで分岐してます。 ユーザーが増えてきたので、かなりの行数になってしまいました。 もっとシンプルにするには、どう書けばいいですか? Sub 2009年度収支報告() Dim C5 As String C5 = Sheets("MENU").Range("C5").Value If C5 = "JK0105" Then 'MsgBox "OK" ElseIf C5 = "JK0107" Then 'MsgBox "OK" ElseIf C5 = "JK0201" Then 'MsgBox "OK" -----(省略)----- Else 'MsgBox "NG" End If End Sub シート"ID"(隠しシート)のA列 JK0105 JK0107 JK0201 JK0308 JK0316 JK0322
>>478 条件多いときはSelect Case
マクロ名の最初数字でもOKだっけ?うちはエラーになるけど。
Sub 年度収支報告()
Dim C5 As String
C5 = Sheets("MENU").Range("C5").Value
Select Case C5
Case "JK0105"
MsgBox "1"
Case "JK0107"
MsgBox "2"
Case "JK0201"
MsgBox "3"
Case Else
MsgBox "NG"
End Select
End Sub
>>478 隠しシートリストになければNG、そうでなければOKでいいのか。
Sub 年度収支報告()
Dim c As Range
With Worksheets("ID").UsedRange.Columns(1) '---IDの1列目が対象
Set c = .Find(What:=Range("C5").Value, LookIn:=xlValues, _
LookAt:=xlPart) '---cに検索結果を格納
If Not c Is Nothing Then '---条件に当てはまるセルがあるか
MsgBox ("OK")
Else
MsgBox ("NG")
End If
End With
End Sub
481 :
478 :2009/05/23(土) 14:09:03
レス、ありがとうございます。
>>479 あ、すいません。
マクロ名は適当なのに書き換えてしまいました。
>>480 スッキリしました。
例は6件のみ書きましたが、IDが増えてもマクロを書き直す必要が無さそうなので使わせてもらいます。
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ドラグ 連続データ コピー セルを右下を左ドラグでつまむと連続データが出来ます。 これを「セルのコピー」の動作に固定させたいのですが、 可能でしょうか。 宜しくお願い致します。
>>482 無理
ちなみにオートフィルという動作。右クリックでオートフイルでも試すと何かいいことあるかも
Excel2007でオススメの参考書おしえてください スレがないようで
>>486 ここで三ヶ月ROM これお勧め(´・ω・`)
MOSのExcel上級の例題付き問題集を一通りやると 通常業務に必要なこと+α(若干)くらいは出来るようになるよ 基礎ひと通りを本で覚えて、実用性を実務で身に付けるのが一番だね
すみません、教えてください。 文字列として、0171-3-5489-5という風にデータが入っています。 セルの書式設定も文字列にしてあります。 これを With Range("D3", Range("D65536").End(xlUp)) .Replace "-", "" End With で実行すると頭の”0”が消えて17135489となってしまいます。 どうすればよろしいでしょうか?よろしくお願いします。
×17135489 ○171354895 の間違いでした。
>>490 Dim c As Range
For Each c In Range("D3", Range("D65536").End(xlUp))
c.Value = "'" & c.Value
c.Replace "-", ""
Next c
共用ブックにあるデータを検索するマクロをつくったら、瞬時に結果が出てしまいます。 5秒くらい待たせるようにしたいのですが、数行で書ける複雑な計算式とかありますか?
>>493 Dim waitTime As Variant
waitTime = Now + TimeValue("0:00:05")
Application.Wait waitTime
でマクロを一時停止するとか。
>>490 頭にシングルクォーテーション入れたくない場合はこんな方法も
Sub test()
Dim StrRng as Range
Columns("D:D").NumberFormatLocal = "@" ’念のためD列の書式を文字列に
For Each StrRng In Range("D3", Range("D65536").End(xlUp))
StrRng.Value = WorksheetFunction.Substitute(StrRng.Value, "-", "")
Next
End Sub
>>492 ,495さん
望みどおり出来ました!!
どうも有り難う御座いました。m(_ _)m
WorksheetFunction.Substituteってなんですか? Replaceじゃないの?
動けばいいんだよ
>>497 ワークシート関数のSubstitute関数。
他にもWorksheetFunction.sum〜でsum関数が使えたりもする
基本的な内容は同じだが記述・処理範囲・処理速度などが違う。当然VBA関数の方が細かい作業には向いているが、場合によっては速度が下がる
メリットとしてはVBA覚えたての人が記述さえ知っていれば関数をそのまま使用可能。また引数が簡略・formulaメソッドでセルに直接記述できる、等の理由でわざとワークシート関数を使う人もいる
ただ他アプリのVBAやVB6、.net他で使い回しが効きにくいのがネック
要は一長一短、後は好みってことで。ただ記述が長いのでVBA使うと離れる人が多いかもね
>>497 SUBSTITUTE は、ワークシート関数で、VBAには同じ名前ではない。
REPLACE という名前で同じ機能を持った関数が用意されている。
WorksheetFunction.Substitute として、ワークシート関数を使う事も出来る。
似たようなものがあるならWorksheetFunctionは普通使わないよね。 同じような機能でWorksheetFunctionが速いものって何があるの?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 VB Editerで、F1を押下してヘルプを出すとき異常な遅さです。 早くするにはどうすればいいですか?
つられてOffice Tanaka氏のHPから転載 関数も使え! Excelには多くの機能があります。並べ替えやオートフィルタなどメニューから操作する機能、 SUMやAVERAGEなどのワークシート関数、多彩なグラフ機能、クロス集計も手軽に行える ピボットテーブル、そして操作を自動化できるマクロ機能。 VBAを使ったマクロ作成というのは、Excelが持つ機能の一部を利用しているに過ぎません。 ここで忘れていけないのは、我々はマクロ機能だけを相手にしているのではなく、Excelとい うアプリケーションソフトを操作しているということです。
関数ばかり勉強してきた俺が、いざVBAのほうが遙かに効率的だし? 面白い?ことに気付いた時、必要な時に計算結果が出ればいいんで 関数入れっぱなしはやらなくなった。 VBA関数で対応できないような複雑なものはセルに式そのものを入れた あと、.Value = .Valueでやるようなこともよくやる。
>>507 自分もOffice Tanakaのそのコラム読んだことあったし今回も調べたけど
>>503 は「似たようなものがあるなら」と言ってるんで
この場合 WorksheetFunction.Substitute と REPLACE とか
ほんとに一緒の処理を行うもの同士の比較じゃないといけないかなと思ってた。
511 :
名無しさん@そうだ選挙にいこう :2009/05/24(日) 18:32:08
こういうくだらない言い争いはプログラマ板のVBAスレでやってくんないかな? ここはレベルの低いVBA厨が多いんだから。
あーあ、言っちゃった。
>レベルの低いVBA厨が多い 自己紹介?
>レベルの低いVBA厨が多い いや俺だよ
私はVBAを使いませぬ
VBAを使える人は少ないが 有効にVBAを使える人はもっと少ない
VBAって何? ぶ、ブイバ?
518 :
名無しさん@そうだ選挙にいこう :2009/05/24(日) 20:38:16
Visual Basic For Application って何? 美味しいの?
2003、標準ビューなのに黒い点線で 印刷範囲のようなものが表示されているのですが どうしたら消すことができるでしょうか
>>519 ファイル→印刷範囲のクリア
じゃないでしょうか?
なにせVBAが使えない上にリボンを使っているため、確かではありませんが、、、
WorksheetFunction..Find
>>519 「ツール」―「オプション」の「表示」タブで「ウィンドウオプション」の
「改ページ」のチェックをはずす。
一度印刷プレビューすると出てきちゃうよね。
まだやってるのかよ。 アスペルガー症候群か?
527 :
名無しさん@そうだ選挙にいこう :2009/05/24(日) 23:17:39
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 1から100 自動化 Excelの連番セルについて質問があります。 以下のような数式があり、nの部分を1から100まで変化させた物を100個のセルそれぞれに入力したいのですが、 nの部分を自動的に増やしながら100セルまで埋める事は可能でしょうか? 1セル目では、1 + (5 / 1)、2セル目では、1 + (5 / 2)、...、100セル目では、1 + (5 / 100) となるようにしたいのです。 1 + (5 / n) 1<=n<=100
1-100を縦に入力しておいてその横に式を入れて1-100を参照すればいいね
>>527 A1〜A100に1〜100を振っておいて、=1 + (5 / A1),以降コピペではダメ?
A1に入力するとして、 ="1 + (5 / "&ROW(A1)&") 1 <="&ROW(A1)&"<=100" をそのまま下へオートフィル。
あ、そっか、そのセルそのものを指定する場合は
>>530 の言うとおり
ROW()
だけでいけるな。
数式の意味がわかってないと
>>531 みたいなことになるからみんな気をつけるように
534 :
名無しさん@そうだ選挙にいこう :2009/05/24(日) 23:57:24
>>528 ,529
ありがとうございます。無事に処理する事ができました。
追記で質問なのですが、得られた結果を折れ線グラフにしたいのですが、
水平方向の軸の目盛り設定がうまくいきません。
ここに0から100まで、ラベル間隔と目盛りの間隔を10に設定し、0,10,20..100と表示させたいのですが、
縦軸と交差する項目番号が1からしか設定できず、1,11... といった風になってしまいます。
どのようにすれば0,10,20... といった風に表示する事ができるのでしょうか?
>>533 あ。そういうことかorz
一番下の式そのものを表示したいんだと思ってたorz
だったらいちばんスマートなのは
>>530 だな。
利口な
>>536 は括弧が要らないって言ってるのか?
>>537 わざわざアドレスに依存するように書くバカ。
なんかさっきから病人がわめいてるな。
>>538 カッコ使ってるかどうかなど何ら評価対象にはならんよ。
ていうか、
>>536 さんよ。
そんなのどうでもいいから、
>>534 に答えてあげろよ。
利口wwwwwwwなんだろ?
536は病人だから構うのはよせ
>>542 散布図描いたら簡単にできたぞ。
そんなことはどうでもいい。
バカは回答するな。どっか行け。
524=536か?
>>534 >>544 の言うように散布図にするか
どこかに10,20,30・・・と入力して項目軸ラベルにする。
なんかいつも思うけど、ここの回答者の中に定期的に、 「質問者全てがプログラム板の住民のように細かい部分まで 知りたがっている」 「どっちでも良いことを、わざわざ効率がどうとかこっちがスマートだとか、 少しでも他人に自身の知識のひけらかしができれば満足」 みたいなのが混ざるよな? 挙句の果てには回答者が求めている回答を「どうでもいい」と述べて、 とりあえず一般的には正しい解答の一つと思われるものを否定するような 輩まで現れる始末。
>>544 では、今日から24時間体制で、
全 て の 質 問 へ の 即 答 を 引 き 受 け る
とおっしゃるわけですね、ご立派です。
やっぱ病人だ。 敏感すぐる。
>>548 バカは回答するなと言ったまで。
どうしてそんなにバカなの?
>>543 確かに病んでそうだな。
統失の一歩手前といったところか?
多分536=547だよ。
だいたいここの回答者はレベル低いやつ多いよ。 有効数字さえ知らないやつがざら。
554 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 00:49:14
527ですが、散布図でいけました。 ありがとうございました。
>>547 関数の定義域をROW()で与えるやつをバカ以外にどうよべばいい?
あれ? 病人が二人いたのか?
質問者の目的が何なのか具体的に分からないと 何がベストの回答かは一概には決められないな
>>557 質問者の目的は関数1+(5+n)の値を定義域1<=n<=100で求めることだよ。
>>558 それは分かるんたが「何の為にそれをやりたいか」って部分が曖昧だから
>>528 >>529 がベストなのか
>>530 がベストなのか分からないって事。
数学の勉強をしているのなら
>>528 が分かりやすいだろうし、とにかく手っ取り早く結果の数値列だけを得たいのであれば
>>530 のような方法を覚えておくのも悪くない。
質問者が教師だったりしたらもしかして
>>531 のような回答を求めているのかもしれない。
いつも思うんだが、質問者は職業、業務内容、何の為にそれをしたいのか、といった事も書いてくれるといいんだよな。 それらが分かれば例えオバカで舌足らずな質問でも回答者が問題の背景を推測して適切な回答をしやすい。 端的な質問内容でも回答に必要な情報が漏れなく書かれればいいんだが、殆どの質問者はそうは出来ないオバカばかりだからなぁ。
図形を多く描いて、行削除をしたとき、図形の縮小版が線状に残ってしまいます。 これらを一気に取り除くにはどうすればいいですか? 職業 :モデル 業務内容:広告用のドレスを着て、チラシや雑誌の写真に掲載されてます 何の為に:ひとつ一つ消すのが面倒だから
560のインテリジェントな回答を待とうか
>>561 編集→ジャンプ→セルの選択→オブジェクトにチェック→OK→デリート
>>560 今回は回答者がバカだったんだ。質問者のせいにするのはやめよう。
質問者からもっと情報を引き出そうというのには賛成だな。
よく聞いてみたらピボットテーブルで解決するケースが多い。
566 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 11:22:12
「バカ」をNG登録するとすっきりした。
567 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 12:29:55
Windows Vistaです。えくせるで作った表をワードに反映させたいのですがやり方を教えて下さい。
コピーして貼り付け
569 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 12:33:32
>>568 ごめんなさい、それやったんですが、表の中の文字だけが貼り付けられます;
じゃあ図形貼り付けとかリンク貼り付けで
571 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 12:44:31
>>570 ありがとうございます!!ラベルマイティーに入れる場合のやり方は分かりますか?
572 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 12:52:14
追記:ラベルマイティーもしくはフォトショップに入れたい場合のやり方を教えて下さい。
574 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 15:50:57
>>573 解決しました!!本当にありがとうございました!!
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007/2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 csv txt 外部データ取り込み
外部データをWebクエリとして認識されないサイトから
個人的な使用目的でデータをとりこもうとしてるのですが
txtでまず「,」あるいは「;」をつけて編集し、その後、Excelでテキストファイルとしてインポートする方法以外に
効率的な方法はあるのでしょうか?
例えば、実際のサイトとは違いますが
ttp://ja.wikipedia.org/wiki/%E6%94%BF%E4%BB%A4%E6%8C%87%E5%AE%9A%E9%83%BD%E5%B8%82 ここの、「指定都市および行政区の一覧」の場所であれば、
txtでまず
都道府県,指定都市,指定日,行政区
北海道,札幌市,4/1,中央区(以下略)
宮城県,仙台市,4/1,青葉区
・・・
などとして編集し、インポートしています。
>>575 webクエリとして保存は一番左上に出てる
取り込んだ後は表の上下のセルを削除し、
上下を削除、CTRL+A→列番号のAとBの間にカーソルをもっていきダブルクリック
行番号の1と2の間に〜同様
でいいかな?
区を分けたいときはE列を選択→データの区切り位置、その他で「・」にすれば区ごとにセルが分けられる
正規化させたい時は全体のセルの結合を解除して、VBA使ったほうがいいかな
>>575 取り込みたい回数がそれほど多くないならコピペが一番早い。
目的のサイトをIEで開いてテーブル部分をドラッグ、中の文字が反転したらコピー、Excelにペーストで、
一覧表がそのまま取り込める。
サイトによってはテーブル内のどこかにマウスカーソルを合わせて右クリック、「Excelにエクスポート」で
取り込める場合もある。
正規化が自動で簡単にできるかどうかはテーブルの構成による。
結合セルが多いと大変かもしれない。
2007になってから、ブラウザを右クリックして「Excelにエクスポート」の成功率が低くなった気がする。 両方入ったマシンだと2007の方に取り込まれてしまうので、2003だけが入ったマシンがあれば、 そっちで試した方がいいかも。
579 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 21:43:43
A列、B列 山田、あああ 佐藤、あああ 山田、ううう 山田、いいい 鈴木 とあった場合 C列、D列に 山田、「あああ、いいい、ううう」 佐藤、「あああ」 鈴木、「」 としたいのですがこういうのって可能でしょうか?
叶
なんとなくだが、 ・vlookupを目の敵 ・ピボットテーブル大好き ・やたら他人を「バカ」と呼びたがる あのお方が降臨しそうな悪寒w
>>579 C1=山田
D1=IF(INDIRECT("r"&COLUMN()-3&"c1",0)=$C1,INDIRECT("r"&COLUMN()-3&"c2",0)&"、","")
D2=C2&D1
後はD1D2を右にオートフィル
Z列まで伸ばしたとして
D3=Z2
ってやればとりあえず目的のものはできる
VBAの方が圧倒的に綺麗だな
>>581 俺はVLOOKUPに疑問を呈することはよくあるが、バカ呼ばわりは俺じゃないときがほとんどだな。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 A列に20,000〜25,000行の商品コードが書かれたデータが重複しています。 このようなデータが多数あって、重複データを削除するだけで毎日10分以上も掛かっています。 現在、以下のようなマクロで削除していますが、20000行で21秒でした。 もっと高速に出来ますか? (会社のパソコンなので、パソコンを買い換えろっていうのはナシで・・・) Sub test1() Dim i, StartTime, StopTime Application.ScreenUpdating = False StartTime = Time For i = ActiveSheet.Range("A65536").End(xlUp).Row To 2 Step -1 With Cells(i, 1) If .Value = .Offset(-1).Value Then .EntireRow.Delete End If End With Next StopTime = Time StopTime = StopTime - StartTime MsgBox Minute(StopTime) & "分" & Second(StopTime) & "秒" Application.ScreenUpdating = True End Sub
まーた釣り質問っぽいのが来たなw
回答はピボットテーブル以外でおねがいします
589 :
名無しさん@そうだ選挙にいこう :2009/05/25(月) 22:24:18
ピボットテーブル厨なので、VBAは必要に感じませんwww
590 :
561 :2009/05/25(月) 22:30:30
>>563 ありがとうございます。
一気に取り除くことができました。
>>585 Sub Macro1()
Dim gyo As Long
Application.ScreenUpdating = False
gyo = Range("A65536").End(xlUp).Row
Columns("A:A").AutoFilter
Range("A1:A" & gyo).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Range("a:a").Copy
Range("B1").Select
ActiveSheet.Paste '
ActiveSheet.ShowAllData
Application.ScreenUpdating = True
End Sub
遅いか早いかは分からないけど良かったら試して欲しい
オートフィルタで重複データ無視→コピー貼り付け。
592 :
585 :2009/05/25(月) 22:35:45
計算してるならこれも付けた方が良くない? 計算がないならなくてもいいと思うけど Application.Calculation = xlCalculationManual'自動計算→手動計算 Application.Calculation = xlCalculationAutomatic'手動計算→自動計算
594 :
585 :2009/05/25(月) 23:13:16
>>591 試してみました。
自宅のパソコンだと、20,000行で17秒でしたが、591の例では僅か4秒でした。
しかし、B列が書き換えられてしまうので、ちょっと手直しします。
ありがとうございました。
B列以降のデータも必要なのか
毎日多数のデータ扱うならアクセスみたいな データベースソフトの導入も検討したらいいんじゃね? VBAが書けるなら重複データ削除以外にも色々活用出来るだろうし。
>>597 お前はデータの重複削除するのにアクセスでVBA使うのか。
なんでアクセス使いたいんだ?
599 :
名無しさん@そうだ選挙にいこう :2009/05/26(火) 09:52:38
どうした?朝から頭悪すぎだろ 牛乳でも飲んで落ちつけよ
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】EXCEL 関数 照合 入力 Aという文字列に対して123という数値が割り当てられています。 Bという文字列に対して456という数値が割り当てられています。 ・・・と続くようなエクセルの表があり、別ページにA,B・・・がバラバラ&複数置かれています。 それに対応する数値を割り当てるような関数はありますでしょうか。 よろしくお願いします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【5 検索キーワード 】 ピボットテーブル グループ化 空白セル ピボットテーブルでデータソース範囲の日付の列に空白セルがあるとグループ化出来ないことがあります。 しかし何事もなく普通に出来ることもあります。 どっちかというと出来るときの方が多いですけど。 どういうとき出来なくてどういうとき出来るか分る方いますか? なお空白セルはイミディエイトウィンドウで?isempty([a2].value)とかで確認済みですので違いなく完璧な空白セルです。
EXCEL 2007ってデータ数が増えると、すぐリソース不足かで画面がめちゃくちゃになるんだけど、悲惨じゃね? EXCEL 2003のときはこんなことなかったのにな
オレもよくブックが壊れましたとか出てたんだけど上書きインストールしたら嘘みたいに安定したことはある でもこの前OSごと再インストールしたらまた壊れるようになった
>>602 ぐぐってみると空白セルが一つでもあると出来ないとか書かれてるがおれんとこは出来るな。
607 :
名無しさん@そうだ選挙にいこう :2009/05/26(火) 16:59:45
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】エクセル2007 フィルタ 列 or条件 エクセルのフィルタ機能についての質問です。 エクセルのオートフィルタの機能で,数値が沢山打ち込んであるシートで, 例えばA列50以上,B列40以上,C列100以上などをフィルタオプションを使って設定すると, 表示される行はA列50以上かつB列40以上かつC列100以上となってしまいますが, 「かつ」ではなく「または」で表示させることはできないのでしょうか?
>>607 作業列に条件式を書いて、それに対してオートフィルタをかけるしかない。
>>507-508 オートフィルターなのかフィルタオプションなのかはっきりしないが、フィルタオプションなら
条件1 条件2 条件3
>=50
>=40
>=100
とずらせばいい。
縦には「または」横には「かつ」だ。
酢萬、100番少なかったな。
611 :
名無しさん@そうだ選挙にいこう :2009/05/26(火) 19:47:59
>>608 、609
根本的なフィルタオプションの知識不足でした。
ありがとうございました。
612 :
名無しさん@そうだ選挙にいこう :2009/05/26(火) 20:54:10
>>603 スペックが低いPCを使ってるからだw
2007は仕様が変わってPCの性能にかなり依存するようになった。
少し前のvista搭載ノートPCは悲惨だったな
614 :
名無しさん@そうだ選挙にいこう :2009/05/26(火) 21:33:05
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 おk C3セルを入力規則でリスト化し、初期値を空白にしてあります。 リストから選ばせてからマクロを実行させるとき、空白セルでは動作しないように したいのですが、「型が違います」とエラーになります。 どのように対処すればいいでしょうか? Sub 女子高生リスト() JK_Name = Range("C3").Value If JK_Name = "" Then MsgBox "プルダウンメニューから、好みのオニャノコの名前を選択してください。" Exit Sub End If End Sub ちなみに、Excel2003ではエラーになりません。
数年ぶりにこの板をみたら、思いつきで立てたこのスレが 82代まで続いているなんて。
B5、B8、B11、B14の各セルに記号や数値を入れ、 ボタンをクリックすると検索したり集計したりするのを作っています。 マクロはなんとか書けましたが、ボタンのデザインとか 配置とか見栄えを良くしたいんですけど、デザインのサンプルとか 公開してるサイトがあったら教えてください。
JAVAとかC#やSQLのタブ付きソースをコピペすると 別のセルに入ってくちゃくちゃなんですがどうすればいいですか?
このスレの過去ログ誰かまとめてないかな。 ROM専ですがマジ助かってます。
>>615 ビジネスソフト板にビジネスソフトの雄であるExcelの専用スレが必要なことくらい
誰でも解ることだからね
だから初代も10代も82代も、皆当たり前の措置として必要なスレを立て続けてるだけ
俺も10回以上はここのスレ立てやったかな
>615 このヒト? 1 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2000/08/09(水) 12:47 スレ乱立するのもあれだからExelの質問・回答はここでまとめてやりましょう。
>>521 俺はその書き込みに記憶ある。
証券マンが活躍してたころかな?
今でもちょくちょくここにお見えになるけど。
WorksheetFunction..Find
A B C D 1 1 2 3 4 2 5 6 7 8 3 9 A B C 4 D E F G ・ ・ ・ これを A B C D 1 1 2 3 4 5 6 7 8 9 A B C D E F G ・ ・ ・ ・ 2 3 4 のように並べ替えるのにいつも一列一列ドラッグして移動させてるんだけど もっと手軽な方法とかってありますか?
csvで書き出して、テキストエディタで¥nを,で置き換える
>>624 ピボットテーブルと行列を入れ替えてコピーでもできるなw
INDIRECTはまだぁ?
>>624 E1=INDIRECT("r"&INT((COLUMN()-1)/4)+1&"c"&MOD(COLUMN()-1,4)+1,0)
右にオートフィル
>>628 ありがとうございます!
正直理屈は全くわからないけど出来ました
これからもっとエクセルを勉強しなくては・・・
630 :
名無しさん@そうだ選挙にいこう :2009/05/27(水) 21:42:05
メニュー[データ]-[入力規則]-[リスト]で、セルの右横に出る[▼]のボタンは何て名前ですか?
>>630 ドロップダウンボタンでいいとオモ
英語表記だとShow Drop Button
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel03, 07 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel txt インポート 取り込み フォーム インターネットのフォームからメールとして送られてきた情報を、 excelで名簿としてまとめたいのですが、効率のいい方法はないでしょうか。 メールでは 名前:山田太郎 年齢:20 のような形で送られてきます。 インポートのウィザードの使い勝手が良くなかったので、 これを名簿として集計するような良い方法がありましたらご教授ください。
>>633 03だと
新しいシートに貼り付け、区切り位置を「:」するとB1B2が山田太郎と20になる
それをコピー、右クリックで貼り付け。針付けするときに行列を入れ替える
07だと
sheet2!a1=名前:山田太郎
sheet2!a2=年齢:20
で追加するときは右へ貼り付けて、
sheet1!a1=SUBSTITUTE(Sheet2!A1,"名前:","")
とすれば自動的に「名前:」の部分が消えたデータベースを作れる
VBA。sheet2のA1A2に貼り付けて、sheet1の最後に追加するマクロ。コマンドボタンに登録してload辺りを組み合わせると使い勝手は良くなると思う
Sub a()
Dim gyo
gyo = 1 + Range("A65536").End(xlUp).Row
Range("a" & gyo) = Range("sheet2!a1")
Range("b" & gyo) = Range("sheet2!a2")
End Sub
って感じかな
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel03, 【3 VBAが使えるか .】 可 すこし 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 インボリュート関数 逆関数 VBAでエクセルにない関数を作成できると聞きました。 ainv(適当)と言う名前の関数を作ろうと考えています。 ainv問い名前と関連づけたどうやって取り込むか試行錯誤しています。 その方法をご教授ください。 拾ってきたVBA↓ 内容は間違ってないと思います。 Function INV(α) INV = Tan(α) - α End Function Function AINV(invα) B = 1.5706 Do A = B B = A - (Tan(A) - A - invα) / (Tan(A) ^ 2) Loop Until Abs(B - A) < 0.000000001 AINV = B End Functioninn
マクロで、テキストファイルを開くには、どう書けばいいですか? これだとエクセルが開いてしまいます。 Workbooks.Open Filename:="C:\Excel\test1\help.txt"
Sub エクセル外のアプリを使うにはそれじゃ駄目なんだな() Shell ("NOTEPAD.EXE C:\Excel\test1\help.txt"), vbNormalFocus End Sub
質問させてください。
リストの中の最新の日付を参照する方法が思いつかなくて困っています。
具体的には、以下の表のH3からH8に左のリストの最新の枚数を反映させたいのです。
B列の項目が1円で、且つA列の日付が最新の場合に同じ行のEの値をH1に代入させたい、と言えばわかりますでしょうか・・・
説明が苦手なのでわかりにくいかも知れませんがお願いします。
ttp://imagepot.net/view/124350382336.jpg OSはWindowsXPでexcelのverは2003です。
VBAは出来るだけ使いたくありませんが、他に方法がない場合はVBAでも構いません。
>>642 H3=IF(VLOOKUP(MAX(A:A),A:B,2)=G3,VLOOKUP(MAX(A:A),A:E,5),"")
H8までオートフィル
>>642 =SUMIF(B:B,G3,C:C)-SUMIF(B:B,G3,D:D)
ピボットテーブルでも出来るが。
ところで
>>642 はE列の式はどうやってるんだ?
E列の式が分ればH列の式も分りそうなもんだが。
>>643 ,644
ありがとうございます。
変に難しく考えていましたが
>>644 さんの解の様にすべて計算すれば済む話でしたね。
>>645 取り敢えず手動で入力してみましたが、実はこちらもどうやって計算させようか悩んでいた所です。
>>646 数字だけ入力するようにして、単位はユーザー書式
B列に「#,###"円"」とユーザー書式設定後、B1B2を標準にする
C列以降も同様
こうすればSUM等で計算できるようになるよ
RPGの戦闘部分を作っています。 FFみたいなアクティブタイムバトル(パラメータのすばやさに毎秒1ずつ足して行き、規定値になったら行動) というものですが、勝利判定はどこでどういう風にすればよいでしょうか? 行動が終わった時に、goto文で戦闘部分の処理を抜け出すのが一般的でしょうか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ピボットテーブル 並び替え
ピボットテーブルでの各個人での集計を降順、昇順での並び替えしたいのですができますでしょうか。
うまく説明できないので、下記にうpしました。パスはxlsです。
シート1が集計元データ、シート4がピボットテーブル作成先です。
ttp://upload.jpn.ph/10/bin/bin0878.zip.html
>>651 ピボットテーブルの「名前」と「商品名」の右の▼をクリックすれば
並べ替え関係のメニューが出てくるけど。
あ、ごめん。今のなし。メニューから並べ替えできるのは2007からだったわ。
2003の場合は「名前」「商品名」を右クリック、フィールドの設定→詳細ボタンで 並べ替えの設定ができる
655 :
651 :2009/05/29(金) 11:15:51
フィールドの設定→詳細ボタンで計の昇順、降順で並び替えできました。
>>652-654 ありがとうございました。とても助かりました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 VBAで新規のbookを作ってファイル名をYYYYMMDDhhmmssにしたいのですが、 Wbook_out = Year(Date) & _ Right("0" & Month(Date), 2) & _ Right("0" & Day(Date), 2) & _ Right("0" & Hour(Now), 2) & _ Right("0" & Minute(Now), 2) & _ Right("0" & Second(Now), 2) もっと適当な命令や定番テクニックってないですか?
657 :
656 :2009/05/29(金) 17:49:20
Excle VBAのスレがあったんでそちらに移動します。 失礼しました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ルビを別のセルに表示 例えばA1のセルに「山田 太郎」と入力してあって、 そこからLEFT関数とFIND関数を使ってB1セルに名字を、 RIGHT関数とLEN関数を使ってC2セルに名前を表示してあります。 ここからD1セルとE1セルに名字と名前の振り仮名を表示しなければ いけないのですが、どうしたらいいのでしょうか? ちなみに学校の課題で、PHONTENIC関数を習ったのでそれを使わないといけないかなー…と思ってるのですがうまくいきません。 よかったら回答お願いします。
【1 OSの種類 】 WindowsXP 【2 Excelのバージョン .】 Excel2003 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 データ配列
660 :
659 :2009/05/29(金) 18:14:30
すみません。途中で書き込んでしまいました。 以下、質問です。よろしくお願いいたします。 ワークシート上で、行に「名前・数量・単価・合計」という風に何行か並んでいるのを 列の並びに変換する方法はないでしょうか? つまり、 名前 数量 単価 合計 を 名前 数量 単価 合計 に変えたいのです。
661 :
名無しさん@そうだ選挙にいこう :2009/05/29(金) 18:38:03
EXCEL2007、VistaUltimateです。 グラフについての質問です。 一行目の[データ系列名]が[データ要素]と見なされている時、 これを[データ系列名]に変更するには、どうすれば良いのでしょうか データ要素は二行目、三行目で、一列目はデータ系列名です。 よろしくお願いします。
662 :
454 :2009/05/29(金) 19:35:05
すみません。
>>454 の質問で、
>>458 さんから「標準モジュールに Public PWD」と
回答を頂きましたが、Excel2000だと動作しませんでした。
(自宅のPCはExcel2003で、こちらで動作確認してました)
Excel2000では無理なのでしょうか?
>>658 D1=LEFT(PHONETIC(A1),FIND(" ",PHONETIC(A1))-1)
E1=RIGHT(PHONETIC(A1),LEN(PHONETIC(A1))-FIND(" ",PHONETIC(A1)))
「A1」を「PHONETIC(A1)」と置換すればいいよ
>>660 コピー、貼り付けで「行列を入れ替える」にチェック
若しくはそれがA1-D1に入力されていれば、「A2=INDIRECT("r1c"&ROW()-1,0)」で舌にオートフィル
>660 とりあえず並べ替えたいだけなら、 コピーして、右クリック→形式を選択して貼り付け →行列を入れ替えにチェック
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2000, 2002, 2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 フォルダ 作る マクロで集計した結果を"集計結果.xls"という名前で"一時保管"というフォルダに 書き出していますが、ときどきこのフォルダごと消されてしまいます。 "一時保管"フォルダがあればその中に、無ければ"一時保管"フォルダを作って その中に保存するには、どんなふうに書けばいいのでしょうか?
>665 素朴な疑問、フォルダごとけされるっていうのは人為的に?
667 :
665 :2009/05/29(金) 22:54:17
>>666 そうです。
一時保管フォルダに入れたファイルは各自で消去するようにしてるのですが、
今日、フォルダごと消されたためエラーになりました。
社員教育の問題もありますね・・・
使った人のコンピュータ名(IPアドレス)を取得して、ログも取っておきます。
Sub フォルダ消すんじゃねえおビキビキAA略() Set FSO = CreateObject("Scripting.FileSystemObject") MyPath = "C:\TEST\一時保管" If FSO.FolderExists(MyPath) = False Then FSO.Createfolder (MyPath) MyFile = MyPath & "\" & "集計結果.xls" If FSO.FileExists(MyFile) = True Then FSO.DeleteFile (MyFile) ActiveWorkbook.SaveAs MyFile End Sub
Excel関数やマクロを1日1時間時間をとって勉強すればどれくらいでそれなりに分るようになるでしょう?
人によるとしか
まずは1週間ぐらいで一区切りだな。 マクロの記録した物を見るだけでもある程度はわかるようになると思う。 さらに先に進んでちゃんと理解するには、変数とか制御構造とか精度とか、 他のコンピューター言語にも共通する概念の理解が必要になってくる。 こっから先は人によって理解力に差が出るので、何ヶ月もかかることもある。
プッ、なんだなんだエクセルで、お勉強かっ
セルに入った商品コード(半角英数字)をオートフィルタのキーにするとき、 *だと全部がヒットしてしまうので、5文字以上はOK、または5文字*もOK、 4文字以下はExit Subにするにはどうすればいいですか? '途中まで書いたやつ Dim PCODE PCODE = Range("B5").Value If Len(PCODE) >= 5 Then 'オートフィルタで抽出(略) Else Exit Sub End If
エクセル2000 VBA勉強中 質問というか確認なんですが 生年月日からその人の年齢を表示する数式? を書いたのですがこれでも合ってるのでしょうか? とりあえずは動くのですが不安なのでチェックお願いします ちなみにF10には生年月日が入ってます =ROUNDDOWN(DAYS360(F10,TODAY())/360,0)
自分の年齢計算してみたか? ふつうはDATEDIFつかうね
=DATEDIF(F10,TODAY(),"Y")
>>676 >>675 のためにはならないかもしれないけどスマン。
678 :
659 :2009/05/30(土) 18:05:46
【1 OSの種類 .】 WindowsXP sp2 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 google でExcel "新しいタブ" リンク 等… Excelで実験データを管理する、以下のようなファイルを作成しようとしています。 ・タブ毎に、特定のフォーマットでデータベースを登録する (実験データタブ)。 ・実験データタブを管理するタブを一個作成する (管理用タブ)。 ここで質問なのですが、 管理用タブが、実験用タブの値を参照する事はできているのですが、 管理用タブにリンクを記述しておき、別のタブを開く方法が判りません… 実験データタブの数が少なくとも数百に達する為、 できればクリック一発で飛ぶ方法を見つけたいのですが… 素人な質問かもしれませんが、何卒ご教示下さい。
680 :
名無しさん@そうだ選挙にいこう :2009/05/30(土) 18:19:48
関数などではなく、エクセルで文章作成をしなければならないのですが、何かメリットがあるのでしょうか? 不馴れで時間かかります。 こう言う使い方をする企業って多いものなのでしょうか?
得意なワードなどのソフトで文章作成しておいてエクセルへコピー&ペースト しとけば?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 角度 ° 同僚からもらったファイルVBAの計算式で角度の表示を°→# で表示してます。 仕事で使っているVBAなのですべてアップロードできません。 やっていることは0°から 180°まで1°ずつ角度を増やしています。 ここで質問は#を角度として使ってokなのか知りたいことです。 やっていることは A = 0# B = 180# A=A+1# A=Bになるまで計算します #の取り扱いについてご教授いただきたくおねがいします
>>676 自分の年月日入れても合ってました(汗)
しかし色々チェックするとなんか微妙な動きをしてたもので
>>677 =DATEDIF(F10,TODAY(),"Y")
コピペさせてもらいました、しかしDATEDIFとは
どのような関数なのか解らなかったので
ググッてみます(笑)
>>680 多くはないけど程度の低い会社には結構あることだな
頭の中で全体のレイアウトを構成し、それを実現するためにはどうすれば良いかを考えられない無能者にとって
Excelの罫線は作りながらレイアウトを錬っていける便利な機能なのだよ
小学生が高学年では罫線ノートを使うが、低学年では方眼ノートを使うのと同じ
ある程度のものを作ろうとすると逆に邪魔になるんだが、そこまでの物を求められない無能者にはExcelの方が
文書作成に使いやすいんだろうね
>>684 うちの会社もエクセルで文章というか日報書かされる。
アホ上司はプリントアウトした時の見栄えしか考えてない。
>>683 #は倍精度浮動小数点数型(Double)を示す記号
その用途だとA=Bにならないことがまれにあるかもしれないから、ふつうは整数型をつかうとおもう
Wordは高機能すぎて詳しくない人間には使いづらい。 ちょっと文章打って簡単にレイアウトするならExcelの方が楽だ、ってなっちゃうんだと思う。
まぁ実際A41枚に収まる程度ならどっちでもいいと思うけどな 逆に、Excelもちゃんと使い慣れてない人が作ると 右側切れまくりだったりするし
689 :
679 :2009/05/30(土) 21:01:36
自己解決しました。 =HYPERLINK("#タブ名!A1","ラベル") =HYPERLINK("[ファイル名]#タブ名!A1","ラベル") のようにする事で解決可能でした。セルの位置まで指定しなければ上手く行かないんですね…
690 :
682 :2009/05/30(土) 21:05:08
ワードは高機能で確かに見栄えのいい文書が作れるが・・ ちょっとした報告書程度のものならほとんどエクセルだな 表とかも楽に作れるし 逆にエクセルばっか使ってるからワードが使えんorz
てゆーか、ルーラー管理とか行間の処理に困るだろ Excelで文書作成とかありえんわ
申請書とか月報とかの定型文書はExcelが多用されるな。 等幅フォントにすると、印刷時文字が隠れる割合が減る w あと、数字とか入れる欄がある場合は、数式作っておいて 勝手に増加したとか減ったとか、予算達成とか書けるんで 横着な人には少し便利かも w
文書って定型文書のことをいってんのか?
それなら
>>694 の方法でつくるのはあたりまえだ。だれでもやってる。
報告書みたいなものをExcelでつくるとしたら無理だってはなし。
第一、行送りをセル内改行でするとしても、セル内なら行の高さを
調整できないし、行を変えるとしたら文字の追加・削除をするたびに
行送りを手動で行う必要がある。そんなこととてもやってられない。
×定型文書はExcelで作る方が楽 △定型文書は使い慣れたソフトで作る方が楽 ○定型文書に限らず使い慣れたソフトで作る方が楽 Wordを使いこなせれば、定型文書だってWordで楽に作れる > あと、数字とか入れる欄がある場合は、数式作っておいて > 勝手に増加したとか減ったとか、予算達成とか書けるんで あたりも、やり方次第で掛かる手間はExcelと変わらず、より見やすく見栄え良く出きる
697 :
673 :2009/05/30(土) 21:49:08
>>674 意味がわからんw
俺だけが使うわけじゃなので・・
? は1文字 ????? は5文字 ?????* は5文字* 5文字* は君の要望
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2007(保存形式はExcel97-2003ブック)
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 できるだけ否
【5 検索キーワード 】 セル 指定 可変
対戦ゲームの戦績表を作ってます
試合結果(対戦相手・勝敗)を入力すると、
自動で全体/相手ごとの試合数・勝敗などを表示するものを作りたいです
ここで、最新の100試合分の勝敗などを表示させたいと思っています
(100試合未満の時は表示なし、またはそこまでの試合分のみなどで誤魔化す)
COUNTIFで特定範囲の勝敗を計算させようと思いましたが、最新の100試合のみを
指定する方法が分かりませんでした
作製中のものをアップしました
全くこの通りの形を維持する必要はないですが、表の横幅はあまり変更したくないです
ttp://up2.shinetworks.net/cgi-bin/snup-mini/src/shinemini13296.zip.html DL KEY:excel
以下アップしたものの捕捉
・2行目と14行目のF〜U列は対戦相手の名前(仮にA〜Xとしています)
・F15以降に対戦結果を入力(勝ち:○ 負け:●)
・B〜E列の15行目以降の入力情報は未定なので、計算用に使用してもOK
・現状1000試合分の入力欄があるが、必要に応じて追加したい
701 :
名無しさん@そうだ選挙にいこう :2009/05/30(土) 22:47:16
∧∧ ⊂(・∀・)つ-、 そんな貴方に、ピボットテーブルw /// /_/:::::/ |:::|/⊂ヽノ|:::| /」 / ̄ ̄旦 ̄ ̄ ̄/| /______/ | | | |-----------|
702 :
名無しさん@そうだ選挙にいこう :2009/05/30(土) 22:59:32
680です。皆さんありがとうございます。
やっぱり変じゃなかったんですか。
助っ人みたいな感じで、言われるままに作るには作るけど、逆に
「ェェ!エクセル使いこなせないの?」と、呆れられます。
A4にビッシリちまちま何これ? 凄く時間掛かるし汚いです。
>>681 さん
ありがとうございます。
コピー&ペースト出来るんですか?
エクセルで開いた時、印刷した時バランス良く現れてくれますか?
コツがあれば教えて下さい。
>>702 ペースト時、そのまま貼り付けるのではなく「形式を選択して貼り付け」→
「Microsoft Word文書オブジェクト」→enter(OKボタンクリック)
としていけばワードでつくった文書はオブジェクトとして貼り付けることが出来る。
この場合作成した文書や罫線をそのまま形を崩さず貼り付けることが出来ます。
印刷時は印刷プレビューを立ち上げて「設定」でレイアウトを弄っていけば
良いかと思います。
704 :
703 :2009/05/31(日) 00:19:33
だけどいちいちそんな手間掛けるのも何だけどね。
705 :
名無しさん@そうだ選挙にいこう :2009/05/31(日) 01:02:21
>>703 さん
早速ありがとうございます!テストしてみます。
>>704 それはそうかもしれませんが、ボリュームあったり枠が細々している場合703さんの方法が私には向いているかも。
出来栄えに対する消化不良も無くなるでしょうし。
ワープロがわりにExcel使うなハゲとか怒られるのはわかるけど
うちは各営業所が作成した報告書をExcelでテーブル化してるんで
報告書もExcelの方がマクロで一気にまとめれて楽なんだよね。
Wordは高機能だけど初心者には何をどうしていいかわからんな。
使いこなしてる人は尊敬するよ。
>>699 ? は *と同じくワイルドカードだよ。
【1 OSの種類 .】 WindowsXP sp2 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 google でExcel "新しいタブ" リンク 等… 実現したい事は、以下の通りです。 あるページから、別のページの特定のセルを記述したいです。 =ページ名!セル座標 と記述すれば参照できることは判っています。 やりたい事は、この 『ページ名』 を、別のセルに入れておき、 そのセルの番号を指定して、別のページのセルを参照したいのです。 例えば、 Sheet1 のA1に "Sheet2" と記述し、 Sheet2 のB5を参照するのに、 Sheet1のA2 から 『=Sheet2!B5』 と記述する代わりに、 『=A1!B5』のような記述(これは上手く行かない)のようにしたいのです。 どのようにすれば直接数式の中にページ名を入れずに値を参照できるでしょうか?
>>707 =INDIRECT(A1&"!B5")
>>708 おかげさまで解決しました、有難う御座いました!!!
>>706 WordがExcelみたいにシートになっていて一つのブックにまとまって
いればもっと活用されていたかもな。昔はそのためにバインダー
なんてものがあったが、ほとんど誰にも相手にされず消えていったけど。
711 :
名無しさん@そうだ選挙にいこう :2009/05/31(日) 23:16:02
教えてください。 一つのセルに長っい文を入れたいのですが、「文がはいっっている 状態でもそのセルの高さ幅は横や上の他のセルと変わらず、その セルをクリックすると初めて、文全体が表示される」といった 形式の入力法が知りたいんです。 自分でやってみてるんですが、普通に入力してしまうとそのセルのみが 以上に長く大きくなってしまいます。 クリックしなければ
散布図上に回帰直線等ではなく、任意の直線を引くことはできますか?
>>711 「クリックすると文全体が表示される」ってセルに表示されるの?
数式バーに表示されるの?
後者だとしたら入力するセルの右セルに空白なり何か文字が入っていれば
全部表示されないけどそういうことじゃなくて?
714 :
名無しさん@そうだ選挙にいこう :2009/06/01(月) 02:11:15
検索するマクロで、A1セルに"*"が入ってたら終了させたいのですが、 Ifの後は何て書けばいいの?
If ActiveSheet.Range("A1") = "*" Then Application.Quit
チェックボックス使えよw
質問です。 A1:F20000をセルの塗りつぶしで白黒の市松模様にするにはどうしたらいいですか? できればVBAでやりたいのでお願いします。 ModとかRowを使うんでしょうがいまひとつまとまりません。
>>718 条件付書式をVBAでいれる方法
Sub test()
With Range("A1:F20000")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(ROW()+COLUMN(),2)"
.FormatConditions(1).Interior.ColorIndex = 1
End With
End Sub
>>718 と逆のパターンの方がいいかも
Sub test2()
With Range("A1:F20000")
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(ROW()+COLUMN(),2)=0" '←
>>718 との違いはここで=0のみ
.FormatConditions(1).Interior.ColorIndex = 1
End With
End Sub
色づけを無しに戻す
Sub test3()
Range("A1:F20000").FormatConditions.Delete
End Sub
721 :
711 :2009/06/02(火) 00:07:39
>>713 「クリックすると文全体が表示される」ようにしたい、というのは
そのままだと、文が挿入されているセルの大きさは小さくて
他のセルと揃っていて、でも長文はすべて入っているため、文の一部が
わくの範囲に一部見えるのみです。が、そのセルをクリックすると、
表の罫線とかにかぶさって罫線は見えなくなってしまいまるで、
いちまいのシートの上に全文があるようにそこだけ別枠?(枠線は
ないけれど)で浮き出てるような感じです。このとき、数式バーにも
文が同時に表示されていて、修正はバーで行ったと思います。
こんな説明でわかりにくくて申し訳ありません。
722 :
718 :2009/06/02(火) 00:31:54
>>719-720 そうか行番号と列番号を足したものをModすればいいんですね。
参考になりました。ありがとう。
drg
>721 長文の文字数が、数式バーでの表示で、4行を超えると枠からはみ出ないで ########の表示になるみたい。 ・・・こういうこと?
725 :
名無しさん@そうだ選挙にいこう :2009/06/02(火) 19:40:53
CSVに12桁の数字があって、それを開くと数式みたいなのになってます。 でもセルをクリックすると数字になってます。 これを直すには、どうすればいいですか?
おーい、エスパー!!
こっちこっち。
>>725 を頼むよ。
文字列で「=A1」とセルに入ってるとします(実際はもっと長いのですが) こういう文字列が大量にあるとき、どうすれば数式と認識されるのでしょうか
>>725 セルの書式設定→表示形式→
分類;ユーザー設定
種類;0
>>727 セルの書式設定→表示形式→
分類;標準→OK
セルの上でF2押した後、Enter押す。
>>728 ありがとうございます
一度にやる方法はありますか?ないならキーボードマクロと組み合わせてやってみます
>>279 表示形式を標準にしてから、データ 区切り位置 次へ 次へ 完了
>>727 1列だけなら
データ→区切り位置→完了
でできるんでループすれば?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 使える 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 図 画像 解像度 dpi シートに図を貼り付け印刷したところボケけしまい困っています。 ボケるというか dpi が下がるというかギザギザな画像になってしまいます。 もとの画像は 300dpi で作ってあり、図の挿入で張り付けました。 図の「サイズとプロパティ」の高さ・幅はそれぞれ100%。 印刷時のページの拡大縮小で80%。 試してみたこと: 「ページ設定」の印刷印刷品質は 300dpiと 600dpi で試してみました。 プリンタは2台と仮想PDFプリンタ1台の計3台で試しました。 画像を PNG,BMP,TIF で作り直してみました。 ボケの程度の若干の差はありますが、すべてのパターンでギザギザが はっきり分かるくらいボケてます。解決策を教えていただけないでしょうか?
>>732 図のプロパティは100%だろうけど
シートの表示は100%かな
734 :
732 :2009/06/02(火) 21:19:17
>>733 工エエェェ(´д`)ェェエエ工
まさか画面上の拡大縮小が印刷に影響しているとは・・・・・。
即答、ありがとうございます。解決しました。
なやんだ時間はなんだったんだ・・・。
735 :
725 :2009/06/02(火) 21:50:01
>>728 すいません。セルの書式設定というのはどこにあるのでしょうか?
書式→セルにはありませんでした。
736 :
725 :2009/06/02(火) 21:50:52
エクセルは2003です。
737 :
725 :2009/06/02(火) 21:54:01
セルの書式設定がみつかりました。 お騒がせしました。
>>735 Ctrl+1か
右クリックして選択するか
メニューの書式→セル
>>734 ごめんなさい
ちゃんと質問読んでませんでした
まさか関係有るとは思わずに
答えてしまった所正解だったいうマジエスパーでした
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 可 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 SubまたはFunctionが定義されていません A列に文章が書いてあり、一度、MS明朝にし、">" という不等号があったら それ以降の右側の文字をMSゴシックにして強調したいです。 100行目でSubまたはFunctionが定義されていませんとエラーになってしまいます。 どこを直せばいいのでしょうか? Sub ゴシック化() Dim i, X, Y, Z 10 Columns("A:A").Font.Name = "MS 明朝" 20 30 Z = Range("A65536").End(xlUp).Row 40 For i = 1 To Z 50 60 If Left(Cells(i, 1), 1) = ">" Then 70 Cells(i, 1).Font.Name = "MS ゴシック" 80 End If 90 100 X = Find(">", Cells(i, 1)) 110 Y = Len(Cells(i, 1)) - X 120 130 If X > 0 Then 140 Cells(i, 1).Characters(Start:=X, Length:=Y).Font.Name = "MS ゴシック" 150 End If 160 170 Next i 180 End Sub
741 :
名無しさん@そうだ選挙にいこう :2009/06/02(火) 23:20:15
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2002 【3 VBAが使えるか .】 不可 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 関数 特定条件 抽出 セルを返す 0以下 以下のようなシートを組んでいます。 ____在庫数_1日目消費数_1日目在庫_2日目消費数_2日目在庫_・・・・ りんご いちご なし 各品目について、2列目に入力した在庫数に対し、一日ごとに消費数を引いていく表です。 ここで、在庫数がマイナスになる日が何日目かをセルに表示したいのですが、 関数のみで可能でしょうか? IF関数は複数範囲の指定ができないと記憶しています。 VLOOKUP関数などを調べてみましたが、そのセル自体の値が欲しいわけではないので、 つまづいています。やり方のヒントをご教示願います。
>740 文字列対象の検索はInStr関数を使います。詳しくはヘルプ参照してください。
743 :
742 :2009/06/02(火) 23:41:15
>740 試してみました。100行の部分だけだと最後の1文字がフォント変更されなかったので、Yを+1してます。 Sub ゴシック化() Dim i, X, Y, Z 010 Columns("A:A").Font.Name = "MS 明朝" 020 030 Z = Range("A65536").End(xlUp).Row 040 For i = 1 To Z 050 060 If Left(Cells(i, 1), 1) = ">" Then 070 Cells(i, 1).Font.Name = "MS ゴシック" 080 End If 090 100 X = InStr(Cells(i, 1), ">") ←Findから変更 110 Y = Len(Cells(i, 1)) - X + 1 ← + 1 を追加 120 130 If X > 0 Then 140 Cells(i, 1).Characters(Start:=X, Length:=Y).Font.Name = "MS ゴシック" 150 End If 160 170 Next i 180 End Sub セル内の文字の一部のフォントを変更する方法は、自分にとって初めてでした。勉強になります。
744 :
740 :2009/06/03(水) 00:26:30
745 :
740 :2009/06/03(水) 00:41:37
If Left(Cells(i, 1), 1) = ">" Then Cells(i, 1).Font.Name = "MS ゴシック" End If これは不要でしたね・・・
>>741 かなり無理矢理だけど。
数式列をA列に挿入してA2に
=INDEX($C$1:$I$1,1,MATCH(0,$C2:$I2,-1)+1)
別にA列でなくても最終列でもいいけど。
【1 OSの種類 .】 WindowsXPSP3 【2 Excelのバージョン 】 Excel 9.0.3821 SR-1 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】エクセルの書式 質問させてください セル1/8と記入したいのですが1月8日となってしまいます。 セル内で右クリックで書式設定で標準を選んでも1月8日となってしまいます どうすればいいのでしょうか?
749 :
名無しさん@そうだ選挙にいこう :2009/06/03(水) 09:27:58
エクセルVBAで a=1 b=2 c=3 . . . などと記載したコードのイコール左辺と右辺を入れ替えるのに 簡単な方法ないものですか? ユーザーフォームテキストボックス=シート内セルデータの 入力と呼び戻しで左右入れ替えが必要なんだけど 一つ一つカットペーストしてますが 100行以上あってそこそこ面倒なのです。 教えてくださいませ
>>749 コピーしてシートに貼り付け
メニューから、データ→区切り位置→カンマやタブなど…→区切り文字 その他 =
ドラッグして位置を入れ替え、=をフィルコピー
コピーして貼り直す
751 :
748 :2009/06/03(水) 09:44:42
自己解決しました文字列でした。
752 :
名無しさん@そうだ選挙にいこう :2009/06/03(水) 11:54:29
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel セルの書式設定 表示形式 空白 任意の文字を表示 空白セルの時任意の文字「-」を表示する、という表示形式の設定はできますでしょうか?
>>752 入力されているデータに対する 「書式設定」 だから、何もないところにデータを表示させることは出来ない。
VBA使えば空白セルに「-」を表示させることは可能。
>>752 特定のセルに対して、そのセルが空欄の場合、別のセルに−を表示するのはIF関数で
例えば特定のセルをA1と仮定する場合、
=IF(A1="","-",A1)
とすれば空欄を-表示にすることは出来るけど
そういうことじゃないよね。
(x-y)2 2は2乗 の計算をエクセルでしたい場合関数は何を入力すればいいでしょうか?
それは演算子な 関数でやる場合は =POWER(x-y,2)
759 :
名無しさん@そうだ選挙にいこう :2009/06/04(木) 12:22:58
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA offset VBAの質問です セルのA1:C5が結合セル セルのD1:E5が結合セルで"あ"という文字が入っています A1:C5のセルに"い"という文字をマクロで入力するのに 以下のコードを書きましたがうまくいきません Sub test() Dim seru As Range Set seru = Cells.Find(What:="あ").Offset(0, -1) seru.Value = "い" End Sub 対処方法を教えてください ちなみに Offset(0, -1)をOffset(0, 1)に書き換えると セルのF1には"い"の文字が入ります よろしくお願いします
>759 mergearea を入れて、2ステップにするとうまくいきます。 Sub test() Dim seru As Range Set seru = Cells.Find(What:="あ") ←オフセットは入れずに seru.Offset(0, -1).MergeArea.Value = "い" ←ここでmergeareaと組み合わせる End Sub
>>760 おかげさまで解決しました
プラス方向にoffsetだと結合セルでもうまくいくのに
マイナス方向だとうまくいかないのでかなり悩んでいました
ありがとうございました
>761 2ステップに分けなくてもokでした。(いろいろテストしたときに間違えたのかも) Set seru = Cells.Find(What:="あ").Offset(0, -1).MergeArea seru.Value = "い" これでもよかったのね。
>>762 うまくいきました
もっと経験を積んで精進します
Excelを初心者並にしか扱えないのに、上司が勝手に上級者に仕立て上げ困っている新卒社会人です。 その上司から今日頼まれ事をされました。 「Excelを開く時と閉じる時に‘非表示モジュールがなんちゃらかんちゃらでコンパイルエラーがどうちゃらこうちゃら’というエラーが出るからどうにかしてくれ」 と。 そそくさと帰ってきたので、バージョン等を確認しておりませんで、怒られるの覚悟ですが、分かっているのは ・上司のパソコンは古い ・Adobeのバージョンは7,0 ・他のパソコンのExcel2003で作成したファイルをフロッピーに移し、上司のパソコンで開く時のみ上記のエラーが出る という感じです。 ググってみると 1・Excelのファイル内にある、dotファイルとexlファイルを別の場所に移動させる 2・Adobeのバージョン5の最新のアドオンをダウンロードする という2つが対処法として挙げてありました。 3・ノートンアンチウィルスをなんちゃらかんちゃら 時間が無かった(パニクっていた)ので、対処法1のみを実行しました(対処法3はノートン自体が上司のパソコンに入っていなかったのでスルー)が、やはり同じエラーがorz 「明日までの宿題ね!」 ということで帰ってきました。 明日、対処法2を実行しようと思うのですが、万が一それでも解決しなかったらと考えると不安でたまりません。 そこで、もし他にも考えられる原因・対処法がありましたらご教授下さい。 お願いします
マクロを書いてる途中ですが、シートごとに行数が変わる最下行に合計値を数式で表すとき、 同じようなことを繰り返しています。もっと簡素化する書き方を教えてください。 With Worksheets("DATA") 件数 = .Range("A65536").End(xlUp).Row - 2 'DATAの合計 .Range("C65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("D65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("E65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("G65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("H65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("I65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("K65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("L65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("M65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("O65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("P65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" .Range("Q65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" End With
>>765 Sub a()
For i = 99 To 113
If i <> (102 Or 106 Or 110) Then
With Worksheets("DATA")
件数 = .Range("A65536").End(xlUp).Row - 2
.Range(Chr(i) & "65536").End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
End With
End If
Next
End Sub
もしかして、C〜Qの最終行は同じ行?
まったく検証してないがこんな感じか? Dim i as long For i = 1 to 12 .Range("C65536").offset(0,i-1).End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)" End With
>>764 コンパイルエラーは大抵現物見なきゃわからん
そのエラーの出るブックをうp出来ないなら
自分が初心者であることを正直に話して他の人にその仕事振ってもらえ
>>765 For i = 3 To 17
If (i Mod 4) <> 2 Then
.Cells(65536, i).End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
End If
Next i
------------------------------------------------------------
For i = 0 To 3
For j = 0 To 2
Cells(65536, 3 + i * 4 + j).End(xlUp).Offset'以下略
------------------------------------------------------------
For Each c In Split("C D E G H I K L M O P Q") 'もしくはArray("C", "D"〜
Range(c & "65536").End(xlUp).Offset'以下略
>>768 ご返答感謝します。
うp出来るとおもいます。
ちなみに、エラーが出た際にヘルプを見ると、‘〜が保護されているから解除してくれ’と表示されました。
肝心の〜の部分が思い出せないのですが…
そんなウンコみてーなライブラリの参照設定してるブックうpさせんなよ。アホか
771 :
765 :2009/06/04(木) 22:23:52
>>766-768 みなさん、ありがとうございます。
For i で回してるので、i を ii に変えて試しました。
>>766 C〜Qの最終行は同じ行になります。
そのまま使えました。
>>767 C〜Qなので、12を15に変えるだけで使えました。
件数 = .Range("A65536").End(xlUp).Row - 2
For ii = 1 To 15
.Range("C65536").Offset(0, ii - 1).End(xlUp).Offset(1, 0) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
Next ii
>>768 そのまま使えました。
また、Mod 演算子というのを初めて知りました。
ただ不思議なのは、767さんのFor文でも何故かF列、J列、N列に数式(例えば、=SUM(F3:F2085))が
入ってないんです。うぅ〜ん・・・
>>771 >F列、J列、N列に数式(例えば、=SUM(F3:F2085))が入ってないんです。
わざと抜いてるからだけど
もしかしてFJNにも入れるの?
773 :
765 :2009/06/04(木) 22:30:55
>>772 FJNには不要です。
何度見ても、何故FJNに入らないのか分かりません。
表示形式について質問です。 「2009/6/4 12:34:56」がシリアル値で入っているセルに表示形式を設定して 「分」の「34」のみを2桁表示したいのですが、「mm」にすると分ではなく月の「06」になってしまいます。 時や秒、記号などを表示せず、シリアル値に対する表示形式の設定のみで 「分」のみを2桁表示させる方法を教えてください。 WinXP/Excel2003/非VBAでお願いします。
775 :
765 :2009/06/04(木) 22:37:37
771、773の疑問ですが分かりました。 .End(xlUp).Offset(1, 0)がミソですね。
【1 OSの種類 .】 WindowsXP sp2 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 EXCEL ショートカットキー 無効化 EXCELで数式を入力するときなどに記号や大文字アルファベットを入力するためにSHIFTキーを使います。 しかしEXCELにはShift+SPACEキーに行選択をするショートカットキーが割り当てられているので たまにSHIFTキーを離さないままでSPACEキーを押してしまうとこのショートカットキーが反応してしまいます。 他のテキストエディタなどでは気にせずにShiftを押したままSPACEキーを押していたので、 EXCELも同じ感覚で操作をするために上記のショートカットキーを無効化したいのですが、キー割り当ての設定は見当たりません。 どのようにすれば無効化できるでしょうか?
>773(765) 横レスですが、F列、J列、N列にも他の列と同じ行までデータがありますか? 列毎に最終行位置を計算しているので、F、J、N列のどこかには計算式があるはず。 というか、C〜Qまで合計行位置が同じなら列毎にEndで最終行位置を計算するのは無駄な気がする。 ここまで書いたら>775で気付かれたようです。
>>774 そんな表示形式はない。
それとも仕方なくm.0として34.0と表示するか?
>>774 [m]
ぐらいしか。一時間以内の時に限られるけど
後はminute関数を使って別セルに出すか
780 :
765 :2009/06/04(木) 23:27:50
>>777 データが無いので、例えばF2セルには =SUM(F1:F59463) が入ってました。
>列毎にEndで最終行位置を計算するのは無駄
確かにw
>>774 見た目だけでよいなら
表示形式のユーザー定義で
mm と入力したあとで Ctrl+J を入力してそのまま s と入力
配置タブで 縮小して全体を表示する、折り返して全体を表示する、にチェック。
分のあとに 改行コードを入れてるので見た目は分だけに見える。
この技を使うと見た目だけ千円単位や億円単位にすることもできるよ。
>>765 Sub a()
件数 = Worksheets("DATA").Range("A65536").End(xlUp).Row - 2
g = Worksheets("DATA").Range("C65536").End(xlUp).Row + 1
Range("C" & g & ":E" & g & ",g" & g & ":i" & g & ",k" & g & ":m" & g & ",o" & g & ":q" & g) = "=SUM(R[-" & 件数 & "]C:R[-1]C)"
End Sub
783 :
774 :2009/06/05(金) 00:04:40
>>778 自分も無いような気はしているけど、無いという証拠もないので聞きに来ました。
>>779 先にも書いたように時間ではなく時刻なのでその方法は使えません。
現在は値を入れた列を非表示にして別セルにMINUTE関数で表示していますが
別セルを使わない方法があればと思い「シリアル値に対する表示形式の設定のみで」と
させていただきました。
>>781 その手法は自分も千円単位のときによく使いますが、Ctrl+J以降が表示されないわけではなく、
セルの高さを1行分丁度にするとか、セルの高さを変える度に改行(Ctrl+J)数を変えるなどの
必要があるのが玉に瑕です。見た目だけでよいのですが、そういう制限が無い手法を探しています。
>>784 VBAのFormat関数にはmの代わりに分を表すnがあるんだが、残念ながら表示形式にはないので無理だろう。
もしかしたら英語版には万が一あるかも知らんが、まぁないだろうな。
ボタンをクリックしたときに cell(1,4)のvalueを現在の日時にしたいのですが、 フォーマットとしては、 ○月○日 ○時○分 と出て欲しいです。 time と dateで組み合わせようとしましたが、難しくてできませんでした。 now() 関数から上のように組み立てればいいのでしょうか?
>>785 セルの書式設定で
m"月"d"日" h"時"m"分"
787 :
680 :2009/06/05(金) 08:04:49
680です。
702さん、その節はありがとうございました。 ところがどうしても同じ表示が出ません。
>>702 ペースト時、そのまま貼り付けるのではなく「形式を選択して貼り付け」→
「Microsoft Word文書オブジェクト」→enter(OKボタンクリック)
としていけばワードでつくった文書はオブジェクトとして貼り付けることが出来る。
この場合作成した文書や罫線をそのまま形を崩さず貼り付けることが出来ます。
と、Microsoft〜がそもそも表示されません。
何か方法はありませんでしょうか?
未だにエクセルでの文章に慣れません。
よろしくお願いします。
788 :
名無しさん@そうだ選挙にいこう :2009/06/05(金) 09:45:39
お質問 ・Userform1がある(メインメニュー) ・Userform1内に Unload Userform1 Userform2.show が記述されているコマンドボタン1がある ・Userform2が開く ・Userform2内にテキストボックスがある ・Userform2内にコマンドボタン1がある ・コマンドボタン1を押すとテキストボックス内の文字が エクセルシート1に書き込まれる ・Userform2内に Unload Userform2 Userform1.show のコマンドボタン2がある ↑このコマンドボタン2を押せば Userform2が消えてUserform1が開くはずなのに Userform2が消えずに画面に残るのだけれど なぜなのでしょうか?
>788 当方の環境はWindowsXp(sp3)、Excel2003で試してみましたが、問題なくUserForm2が消えて UserForm1が表示されました。 念のため、UserForm2のコードをそのままコピペします。 Private Sub CommandButton1_Click() Worksheets(1).Range("A1").Value = UserForm2.TextBox1.Text End Sub Private Sub CommandButton2_Click() Unload UserForm2 UserForm1.Show End Sub
790 :
名無しさん@そうだ選挙にいこう :2009/06/05(金) 11:53:45
Excel2000です データの入力規則(入力の種類:リスト)で重複を排除したデータのみ表示 する方法がありますでしょうか?
791 :
785 :2009/06/05(金) 15:23:28
>>786 ありがとうございます。
ちょっと欲張って
送信日時: ○月○日 ○時○分
とセルに格納したかったのですが、
私の考えでは
CONCATENATE("送信日時:", Format("m"月"d"日" h"時"m"分"",now())
とやれば、今の日時と文字を結合できるかなと思ったのですが、
formatでのダブルクォートに悩まされています。
どのようにすればよろしいでしょうか?
792 :
785 :2009/06/05(金) 15:26:22
CONCATENATE("送信日時:", Format("m月d日 h時m分",NOW())) こ、これでもダメでしたorz
とりあえずVBEのヘルプでFormat関数について調べようか
>>791 Cells(1, 4) = Format(Range("A1"), "送信日時:m月d日 h時m分")
A列の最下行はRange("A65536").End(xlup)ですが、A列最下となる行全体をSelectするには どう書けばいいの? エクセル マクロ 最下行 でググっても、FAQばかりで的を得たものが 見つかりません。
>>795 変数を覚えましょう
変数gyoに最下層の行番号を入れ、gyo行目を選択
Sub a()
gyo = Range("A65536").End(xlUp).Row
Rows(gyo & ":" & gyo).Select
End Sub
>>796 あんがと。
Rows(gyo).Select じゃダメなの?
799 :
名無しさん@そうだ選挙にいこう :2009/06/05(金) 21:42:44
1、「(a)山田 & (b)田中 & (p)森下」 2、「(p)森下 & (a)山田 & (b)田中」 3、「(b)田中 & (a)山田 & (p)森下」 4、「(a)山田 & (p)森下」 A1セルにそれぞれこういった内容の記述がある場合 1〜3のパターンの場合は B1セルに山田 C1セルに田中 D1セルに森下 4の場合は B1セルに山田 C1セルは空白 D1セルに森下 になるようにしたいのですが、教えてください おそらくifとsearchを駆使すると思うのですが どうしてもうまくいかないので…
800 :
名無しさん@そうだ選挙にいこう :2009/06/05(金) 21:51:02
>>799 すいません山田、森下、田中は固定値ではないです
そこにはいろんな苗字が入って変動します
(a)(p)(b)は固定値ですが
>>800 「」はないよね?
&と" "(半角スペース)はある?
802 :
名無しさん@そうだ選挙にいこう :2009/06/05(金) 22:19:42
>>801 「」はないです
&と半角スペースはあります
803 :
765 :2009/06/05(金) 22:45:00
E1=FIND("(a)",$A1) F1=FIND("(b)",$A1) G1=FIND("(p)",$A1) B1=IF(RANK(E1,$E$1:$G$1,1)=3,MID($A1,E1+3,LEN($A1)-2),MID($A1,E1+3,-E1-3+FIND(" ",$A1,E1))) C1=IF(RANK(F1,$E$1:$G$1,1)=3,MID($A1,F1+3,LEN($A1)-2),MID($A1,F1+3,-F1-3+FIND(" ",$A1,F1)))
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 Sheet("売上")の月ごとのデータを、Sheet("集計")に1Q、2Q、3Q、4Qでまとめてますが、 ゴチャゴチャになってしまいました。スッキリとまとめるには、どう書けばいいでしょうか? ピボットテーブルではなく、マクロでお願いします。 ---Sheet("売上")--------------------------------------------------------- 商品名 4月 5月 6月 7月 8月 9月 10月 11月 12月 1月 2月 3月 A1 12 15 7 3 2 6 A1 3 5 2 4 9 11 A1 10 12 8 10 16 5 A2 3 0 5 1 3 0 A3 8 6 11 8 7 2 A3 0 3 7 0 1 1 --Sheet("集計")--------------------------------------------------------- 商品名 1Q 2Q 3Q 4Q A1 74 66 A2 8 4 A3 35 19
806 :
805 :2009/06/05(金) 23:56:05
Sub まとめ1() Sheets("集計").Rows("2:65536").Delete Shift:=xlUp Sheets("売上").Select i = 3 j = 1 Do While Cells(i, 1) <> "" NAME1 = Cells(i, 1) With Sheets("集計") If NAME1 <> NAME2 Then 小計1 = 0 小計2 = 0 小計3 = 0 小計4 = 0 j = j + 1 小計1 = Cells(i, 3) + Cells(i, 4) + Cells(i, 5) 小計2 = Cells(i, 7) + Cells(i, 8) + Cells(i, 9) 小計3 = Cells(i, 11) + Cells(i, 12) + Cells(i, 13) 小計4 = Cells(i, 15) + Cells(i, 16) + Cells(i, 17) .Cells(j, 3) = 小計1 .Cells(j, 4) = 小計2 .Cells(j, 5) = 小計3 .Cells(j, 6) = 小計4 NAME2 = NAME1
807 :
805 :2009/06/05(金) 23:56:56
Else 小計1 = 小計1 + Cells(i, 3) + Cells(i, 4) + Cells(i, 5) .Cells(j, 3) = 小計1 小計2 = 小計2 + Cells(i, 7) + Cells(i, 8) + Cells(i, 9) .Cells(j, 4) = 小計2 小計3 = 小計3 + Cells(i, 11) + Cells(i, 12) + Cells(i, 13) .Cells(j, 5) = 小計3 小計4 = 小計4 + Cells(i, 15) + Cells(i, 16) + Cells(i, 17) .Cells(j, 6) = 小計4 End If Sheets("集計").Cells(j, 1) = NAME1 End With i = i + 1 Loop End Sub
>>799 B1=IF(E1="","",IF(RANK(E1,$E$1:$G$1)=1,MID(SUBSTITUTE(A1,A1,A1&" "),E1+3,LEN(SUBSTITUTE(A1,A1,A1&" "))-2),MID(SUBSTITUTE(A1,A1,A1&" "),E1+3,-E1-3+FIND(" ",SUBSTITUTE(A1,A1,A1&" "),E1))))
c1=IF(F1="","",IF(RANK(F1,$E$1:$G$1)=1,MID(SUBSTITUTE(A1,A1,A1&" "),F1+3,LEN(SUBSTITUTE(A1,A1,A1&" "))-2),MID(SUBSTITUTE(A1,A1,A1&" "),F1+3,-F1-3+FIND(" ",SUBSTITUTE(A1,A1,A1&" "),F1))))
D1=IF(G1="","",IF(RANK(G1,$E$1:$G$1)=1,MID(SUBSTITUTE(A1,A1,A1&" "),G1+3,LEN(SUBSTITUTE(A1,A1,A1&" "))-2),MID(SUBSTITUTE(A1,A1,A1&" "),G1+3,-G1-3+FIND(" ",SUBSTITUTE(A1,A1,A1&" "),G1))))
E1=IF(ISERROR(FIND("(a)",SUBSTITUTE($A1,$A1,$A1&" "))),"",FIND("(a)",SUBSTITUTE($A1,$A1,$A1&" ")))
F1=IF(ISERROR(FIND("(b)",SUBSTITUTE($A1,$A1,$A1&" "))),"",FIND("(b)",SUBSTITUTE($A1,$A1,$A1&" ")))
G1=IF(ISERROR(FIND("(p)",SUBSTITUTE($A1,$A1,$A1&" "))),"",FIND("(p)",SUBSTITUTE($A1,$A1,$A1&" ")))
舌にオートフィル。
色々失敗した木もするけどもういいわ
E-Gの作業列使いたくなかったらB-Dの該当部分を置換して下さい
>776どなたかアドバイスいただけないでしょうか
sendkey云々だろうけど眠い また明日
>>809 そういう変な癖を直すよう努力した方がいいと思う。
Excelで解決できたとしても、また別のソフトで苦労することになる。
セルの内容で一文字目に半角/全角スペースを打つということ?
>>805 こんなんでどう?
一応処理時間も1/4程度になってる
Sub まとめ2()
Dim i As Long, j As Long, k As Long
Dim Rng(3) As Range
Sheets("集計").Rows("2:65536").Delete Shift:=xlUp
i = 3
j = 2
With Sheets("売上")
Do While .Cells(i, 1).Value <> ""
If .Cells(i, 1).Value <> .Cells(i - 1, 1).Value Then
For k = 0 To 3
Set Rng(k) = .Cells(i, 3).Resize(1, 3).Offset(0, k * 4)
Next
Else
For k = 0 To 3
Set Rng(k) = Union(Rng(k), .Cells(i, 3).Resize(1, 3).Offset(0, k * 4))
Next
End If
814 :
813 :2009/06/06(土) 08:12:42
If .Cells(i, 1).Value <> .Cells(i + 1, 1).Value Then Sheets("集計").Cells(j, 1).Value = .Cells(i, 1).Value For k = 0 To 3 Sheets("集計").Cells(j, k + 3).Value = WorksheetFunction.Sum(Rng(k)) Next j = j + 1 End If i = i + 1 Loop End With For k = 0 To 3 Set Rng(k) = Nothing Next End Sub
>>795-798 わざわざ行番号を使う必要はないな。
Range("A65536").End(xlUp)..EntireRow.Selectでよい。
あと
>>795 と国語のお勉強
「的を射た」「当を得た」だったかな。
俺は国語は通信簿2を貰ったこともあってあまり得意じゃないが。
>>809 どうしてもやりたきゃOnKeyメソッド調べてみれ。
VBAのコンボボックスで参照した値をセルに表示します。 参照先をクリヤーしても、作業済のセルは、クリヤーされない方法はありますか?
818 :
名無しさん@そうだ選挙にいこう :2009/06/06(土) 09:54:06
ローマ字入力ではなく、かな入力になってる場合に 半角英数プロパティにしているエクセルVBAテキストボックスに 入力すると文字化け?するのは入力方式を変える以外に 改善方法は無いもんなんでしょか?
>>818 テキストボックスのIMEModeプロパティで
自動的にIMEをOFFとか半角モードとかにできる
820 :
名無しさん@そうだ選挙にいこう :2009/06/06(土) 14:18:32
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL 条件付書式 行の挿入 よろしくお願いします。 1つ上の行の日付と比較して<>のとき、 罫線を入れ文字色を変えるという条件付書式のシートがあります。 (日付は、月日をそれぞれの列で取っているので普通の数値) シートには2ヶ月くらい先までの日付が入っていて、 今日の記録をするために足りない分を行挿入をしますが、 そうすると参照式が1つ上ではないところを見てしまいます。 RC型でもやってみましたが改善しないようなので 書式の再度コピー以外で何か方法があればよろしくお願いします。
>>820 右クリックでオートフィル
書式のみコピー
822 :
名無しさん@そうだ選挙にいこう :2009/06/06(土) 15:04:13
>821 すみません、右クリックしても「オートフィル」というのはなく、 「形式を選択して貼り付け」を選んで出てくるのは Unicodeテキスト と テキスト の二択になります。 ちなみに、行挿入前には 「=RC2<>R[-1]C2」 だった書式の条件が、 行挿入後は 「=RC2<>#REF!」 となるようです。 挿入した行よりずっと上のほうまで。
>>822 いや、違う
オートフィルは分かる?選択したセルの右下をドラッグして「1/1」を「1/2」「1/3」・・・と連続データとか作っていける奴
あれはをマウスの右ボタンでやるとメニューが出てくるのよ
>>822 セルの右下でマウスカーソルが十字キーみたくなったら
その状態で右クリックを押しつつドラッグして
希望のセルでもう一度右クリック。
【1 OSの種類 .】 Mac OSX Tiger 【2 Excelのバージョン 】 Office 2004 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 EXCEL 隣接セルまコピー よろしくお願いします。 ヘルプをずーっと読みましたが、なさそうでしので質問します。 以下のようなことを、キーボード操作でワンタッチな方法があるのでしょうか? ・今いるセルの、すぐ上のセルの内容をコピーしたい。 普通にやると、 ・選択セルを1つ上にして ・CTRL+Cで記憶 ・選択セルを1つ下にして ・CTRL+Vで貼付け ですが、操作が多くて面倒だと思います。 これを、「○○キー+○○」を押すだけで、実行できないでしょうか。 あるいは、「○○キー+○○」の後、「○○キー+○○」のように 2タッチでも良いです。 ・さらに、上、下、左、右それぞれがあれば、さらに嬉しいです。 ・さらに、書式情報を持ってくる場合と、文字だけの場合もあれば、最高です。
>>825 Ctrl+R 左のセルをコピー
下と右はあったきもするけど無かったかもしれない
>>826 ,827
ありがとうございました。バッチリですね。
Dは下にコピー、Rは右にコピー、通常のCTRL+C, CTRL+Vと同じですね。
ありがとうございました。
すみませんでした。
office97sr-1を入れなおしたんだが、sr-2がMSサイトからダウンロードできなくなってる・・ どこかにないですかね?
>>776 おお、15年近くExcelを使っているがそんなショートカットがあること
すら知らなかったよ。そもそもShiftを押しながらスペースを押す
習慣が全くないから気がつかなかった。
入力で英字大文字を連続するときだって、Shiftを左手の小指で
押さえて、普通にブラインドタッチしていれば、何の問題もなさそうだが、、、
大文字の連続入力ならCapsLockすればいいだけだし。
よし、1000までその話題を続けろ
そういや遥か昔、このスレで 「喧々諤々」 が正しいか否かで延々と話題が続いたのを思い出した。 侃々諤々 ○ 喧々囂々 ○ 喧々諤々 △(本来は×だが、最近は誤用を一般的なものと認める辞書も出てきた)
835 :
名無しさん@そうだ選挙にいこう :2009/06/06(土) 20:28:59
うざ
Pardon? Is it USER?
俺様の気に入らない書き込みは全部うざってか?
838 :
名無しさん@そうだ選挙にいこう :2009/06/06(土) 21:42:12
>>823-824 わかりました、何度もありがとうございます。
ただ、行挿入した時点でコピー元が「=RC2<>#REF!」 となり…
しかし、それにもかかわらず書式は一応それなりの結果になってる?!
というか、今何箇所かで試していて気づいたのですが、
同じ操作をしているにもかかわらず、結果に違いがあるようです。
左端に月と日、曜日(date関数+曜日表示の書式)があって、右に記入項目がいくつかある、
というシートなので、日付については書式だけでなくデータもコピーしていいのですが、
複数行を挿入をして上行をコピー後の状態が、ざっと3種類に分かれるようです。(一貫性がない)
@元が「=RC2<>#REF!」 となり、コピーも同じ
A比較する対象行が、ずっと上のほうを参照している
B期待通り、1つ上の行と比較してる
不具合?のような気がしてきました…
>>838 重くなるかもしれないけど、あきらめてOFFSET関数を使いましょう。
=OFFSET(A2,-1,0,1,1)=A2
841 :
805 :2009/06/06(土) 23:35:55
>>813 凄いです!
見たことがないコードが並んでるので、ヘルプでひとつずつ確認してるんですが、
Dim Rng(3) As Range の意味が分かりませんでした。
Dim Rng(0) As Range, Rng(1) As Range, Rng(2) As Range, Rng(3) As Range という意味でしょうか?
842 :
名無しさん@そうだ選挙にいこう :2009/06/06(土) 23:43:26
>>840 ありがとうございます!
最初、OFFSET関数の意味が、HELPを見てもよくわからず
質問がうまく伝わってないのかな?などと思いましたが
検索で、行挿入で#REFを出さない方法の質問やりとりを見つけ、
使い方がわかりました。(形を真似ただけなので、関数の意味とかは
まだ理解できてないっぽいですが)
比較条件の座標にOFFSETを入れてみたら、うまくいきました。
#REFが出るたときは、行挿入後に列全体の式が狂ってしまったので
どうしようかと思いましたが、完璧に解決です。本当にありがとうございました。
>>841 その解釈はある意味斬新だな。それで正解。
それは「配列」と言って、たくさんの変数に通し番号をつけて、
まとめていっぺんに扱うことが出来る便利機能。
はじめまして。 こんな夜分にくだらない質問で申し訳ないんですが、無知すぎてわからないので 助けてください;w; 【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい(本当に多少ですが) 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 貼り付け IE EXCEL IEにて、ある表をexcelに張り付けたいんですが、各々a,b,cと違う情報なのに 一つのセルに入ってしまいます。 例えば日付と値段と商品名が同一のセルに入って貼り付けされてしまう、という状況です。 調べてみて、どうもテキストで張り付ければいいみたいな事が書かれていたんですが、IEでコピー、 EXCELで貼り付け→形式を選択して貼り付け→テキストでもうまく別々のセルに入ってくれません。 どなたか解決方法がわかれば、お教えしていただけないでしょうか?よろしくお願いします。
>>844 その「ある表」ってのURL晒せる?
複数データが1つのセルに入るのは、貼り付け方じゃなくて元の表の作り方に問題がある。
ちゃんとしたテーブル形式なら特別な操作しなくても「編集」→「貼り付け」だけでおk。
対策としてはExcelに貼り付けてから「データ」→「区切り位置」を使って
くっついたデータをバラバラにすることができる
>>845 ありがとうございます。URLはある口座のログイン後ページなので難しいですねぇ。。
今試しにまったく同じコピー→形式を選択して貼り付け→テキストで何故かきちんとセルが
ばらけて入力されました。根本的な解決にはなってないですねこれでは・・・。
区切り位置は試してみましたが、かなり使えそうですね。今後同様の状態になったら試してみます。
ありがとうございました!
847 :
名無しさん@そうだ選挙にいこう :2009/06/07(日) 20:14:23
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 IF関数を使ってメタボリック症候群か判定する式を作らなければなりません。 性別、腹囲、中性脂肪値、HDLコレステロール値、収縮期血圧、拡張期血圧、空腹時血糖値 の七項目を入力すると診断してくれる、というものなのですが、全然作れなくて困っています。 腹囲 男性85cm以上、女性90cm以上が基準で ・中性脂肪 150mg/dL以上 かつ/または HDLコレステロール値 40mg/dL未満 ・収縮期血圧 130mmHg以上 かつ/または 拡張期血圧 85mmHg以上 ・空腹時血糖値 110mg/dL以上 の3項目のうち2項目以上当てはまればメタボリックだそうですが どうすれば式を作ることができますか?調べましたが分かりませんでした。 長文で申し訳ありません。どうぞよろしくお願いいたします。
・中性脂肪 150mg/dL以〜 の条件に該当したら1を表示する列をつくる 収縮期血圧、空腹時血糖値についても同様につくり、3列を合計する列を作成 そこが2以上だったらメタボリック
>>847 「かつ/または」の意味がよく分らない。
「かつ」か「または」どっちかにして下さい。
英語のAND/ORの訳でね 実務ではよく使う言葉 ANDでも真、ORでも真なんだよ
and/or and/or /nd?|‐?/ ―【接】 およびまたは 《両方とも,またはいずれか一方》.
こんな言葉実務で使ってるようじゃトラブル起こすだろ そもそも自分で意味分かってないだろ
勝俣さんは静岡県に多いな
>>839 的を得るは間違いだよ
素人のHPを証拠としてもダメ!!
白羽の矢が当たったと同じ間違い スレ違いだからもう止めます
>847 Excel的には「または」でいいわけですね
>>854 由緒正しい
JISにあるから
そんなのどうでもいいからお前の考え方を書けよ。
AND/ORって結局どういう意味?
ANDなの?ORなの?どっち?
>>857 そうだね
>>858 両方だってば。辞書にもJISにもそう書いてあるだろ。小学生にでもわかるように
説明してほしければしてやってもいい。
ワケ ワカ ラン ∧_∧ ∧∧ ∧_∧ (゚ー゚*) (*゚ー゚) (*゚−゚) ⊂ ⊂ ) ( U つ ⊂_へ つ ( ( ( ) ) ) Uノ UU UU U
>両方だってば。
この書き方で論理的な思考が出来ないのが丸わかりだな
まあ君の程度は分かったから無理に説明しようとしなくてもいいよ
それよりも
>>847 本人が言葉の意味分かって使ってるかどうかが問題なんだけどな・・・
>>858 例えば
X AND/OR Y が成り立つならZを実行する
だったら
どんな時にZを実行するのか教えて。
アンカー間違い
>>859 例えば
X AND/OR Y が成り立つならZを実行する
だったら
どんな時にZを実行するのか教えて。
文章解釈でいえば、 1 Aが成り立ち、Bが成り立たないとき 2 Bが成り立ち、Aが成り立たないとき 3 AとBが成り立つとき の3つの場合にZを実行する Excel的には単にOR(A,B)が真ならZを実行する そんだけのことだよ
>>864 >文章解釈でいえば、
>1 Aが成り立ち、Bが成り立たないとき
>2 Bが成り立ち、Aが成り立たないとき
>3 AとBが成り立つとき
>の3つの場合にZを実行する
1と2がよくわからない。そんな解釈できる?
866 :
名無しさん@そうだ選挙にいこう :2009/06/07(日) 22:20:31
使えないバカほどたいした事ないことをもったいぶって得意になってんのな クソばっかだわ
おいおいw 逆に聞くけど おまえの理解してるORってなに? どうでもいいけどA,BじゃなくてX,Yだったな
>>867 「成り立たない時」というのは解釈し過ぎじゃないの?
まあ3つの条件全部使えば結局同じ条件だけどね。
AND/ORはORだという解釈なんだな?
もう好きに解釈してくれ。ふつうのひとなら常識だし、いままでの説明でわかるはずだ。
>>869 AND/ORを単純にORと解釈していいなら問題ないんだが、そうは解釈しない人もいるんだぞ。
ワケワカラン(AAry
873 :
名無しさん@そうだ選挙にいこう :2009/06/07(日) 23:17:28
まあ改めて考えてみると、Excel抜きにしても一般的に、 「または」には「かつ」が含まれてるよね。 だからこそ、わざわざ別個に「かつ」が書かれてると迷う。
だからよく分かってないなら無理に説明しなくていいと言ったのになぁ・・・ 日常語のorは論理学やプログラム言語のorの意味で使われたり xor(排他的論理和:どちらか一方のみ成り立つ時に真)の意味で使われたり 曖昧だから問題になる事が多いんだよな。 (A and B) or (A or B) と書けばどういう捉え方をしても誤解なく伝えられるが、長ったらしいので A and/or B という書き方になったんだろうか。 でも余計に誤解を招くという結果にw 日本語だったら 「AとB少なくともどちらか一方」 みたいに書けばどんな人に対しても誤解なく伝えられるね。
>>874 日本語は曖昧で英語は論理的とかよく言われるけど、AND/ORの存在が英語を欠陥言語にしている。
それをわざわざ「及び/又は」と翻訳している日本語は…。
まあ こんな常識程度のことでぐだぐだ自説を論じられるのもある意味すごい 自分が知らなかっただけなのに言語の欠陥のせいにまでするんだからあきれるわ
>>877 AND/ORに何の疑問も持たずに常識の一言で済ませられるお前にあきれるよ。
ていうかExcel聞きにきたんじゃなかったんだ
まさか常識だろとか言ってる奴が質問者じゃないだろうな もしそうだったらこのくらい自分で考えろよな、お前頭いいんだろ?
883 :
名無しさん@そうだ選挙にいこう :2009/06/08(月) 00:42:25
おまえら、エクセルの話しろよ
884 :
名無しさん@そうだ選挙にいこう :2009/06/08(月) 01:20:14
1/X=1.14-2log10(0.001/0.2 +9.35/(569314.8*X))^28 1/X=1.14-2log10(0.001/0.15 +9.35/(10120158*X))^28 という計算をexcelでしようと思ったんですが、 このXの値を求める場合はどうすればいいんでしょうか? できれば、求めてください(汗)
885 :
名無しさん@そうだ選挙にいこう :2009/06/08(月) 01:49:51
x1=1、3,5、9、12 x2=2,5,7,8,11 y=9.18.27,34,41 みたいな感じで、yの出力が一つでxが異なる値をとるようなグラフを1つの表に まとめたいんだけどやり方わかる人いますか? たぶんyが独立変数でxが従属変数になっているようなグラフを書きたいんだとおもいます。 本当に困っているのでお願いします。
>書きたいんだとおもいます 誰の質問だよwww
887 :
名無しさん@そうだ選挙にいこう :2009/06/08(月) 02:15:43
ところでここに書かれてるのって エクセル以前の話じゃないのか
ちょっと教えてください。 (C18)には→ 2009/7/10 0:00 (E18)には→ 2009/7/11 0:00 (F18)には→ =IF(C18=0,"",(E18-C18)) の関数が入っており、(F18)の結果は24:00です。 この24:00の場合は空欄に(0と言うこと)したいのです。 どなたか教えてもらえませんか。
補足ですが、24:00以下の場合は表示させたいのです。 よろしくお願いします。
>>888 まずF18のセルの書式設定をユーザー定義にして[h]:mmとすれば24:00の表示
になります。
そしてそこに入る式は
=IF(C18=0,"",IF((E18-C18)>1,"",(E18-C18)))
とすればどうでしょうか。
※(F18>24:00=""という形にしてありますが、24:00のみ空欄でしたら
=IF(C18=0,"",IF((E18-C18)=1,"",(E18-C18)))
で入力を。)
A列とB列があります。 A列と、B列では行数が異なります。 A列とB列では、重複したデータがあります。 重複データーは、同じ行にあるとは限りません。 データ行の並び替えは出来ません。 マクロは利用出来ません。 A B 1 パンジー バラ 2 スミレ 菊 3 サクラ スミレ 4 アジサイ パンジー 5 菊 アジサイ 6 スズラン 「どの行に重複データが入っているか?」をわかりやすく表示させる方法、何かありませんか? たとえば、条件付書式で重複行に色を付けたり、C列に「○、×」を表示させるなどで、 よろしくお願いします。
linest関数で、空白を無視して計算させたいのですが、 方法はありますか?
893 :
891 :2009/06/08(月) 14:49:35
すんません、勉強不足でした。 match関数で解決しました。
894 :
名無しさん@そうだ選挙にいこう :2009/06/08(月) 17:11:17
>>847 ちょっと力技してみた
B5=中性脂肪
C5=HDLコレステロール値
D5=収縮期血圧
E5=拡張期血圧
F5=空腹時血糖値
血糖値が110以上じゃなかったら1番目の項目と2番目の項目を満たさないとメタボじゃない
血糖値が110以上だったら1番目と2番目のどっちかの項目を満たすとメタボ
っていう式
=IF( F5>=110, IF(OR(IF(OR(B5>=150,C5<40),TRUE,FALSE),IF(OR(D5>=130,E5>=85),TRUE,FALSE)),"メタボ",""),IF(AND(IF(OR(B5>=150,C5<40),TRUE,FALSE),IF(OR(D5>=130,E5>=85),TRUE,FALSE)),"メタボ",""))
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 シート名が部品番号になっているブックがあり、1ブックあたり10〜20枚程度になっています。 (ブック名は規則性がなくバラバラになっています) これらを部品番号順にシートを並び替え、1ブックあたり50枚として、名簿1xls、名簿2xlsと いうように規則性を持たせたブック名で作りたいのですが、どうすればいいですか? シート数は、約500枚ありますので、手作業でやるにはかなり辛いです。
>>895 質問に対する回答じゃないけど
そういう場合はいっそのこと1ファイル=1部品に分けちゃった方がいいと思うね。
あるいは逆に1ファイルに全部品の情報を収めるか。
1ファイルに50部品、それが何ファイルかあるって構成は中途半端で何かメリットがあるとは思えない。
いっそのことACCESSあたりに移しちゃえばどうかとも思う
>>895 まずは全ブックとシートの一覧を作る。
一覧を作ったら部品番号でソート。
最後に、ソートされた一覧表を頼りに50枚ずつまとめる。
というプログラムをVBAで組む。
ちょっと面倒だけど、そんなに難しくはない。
自分でやるなら、もっと細かい条件がわかってるから
適度に手を抜いたプログラムを作ってちゃっちゃとやるけど、
他人のために作るのは、例外とかエラー処理とか説明とか大変だからやりたくない。
シート分けるのが間違い 1枚でやれ
とりあえず最初の部分だけ Sub ブックとシートの一覧() d = "C:\buhin\" 'ここにフォルダ名を書く。最後の\を忘れないよう。 Set s = ActiveSheet r = 1 ChDir d fn = Dir("*.xls") Do While fn <> "" Workbooks.Open fn For Each ws In Worksheets s.Cells(r, 1) = d + fn s.Cells(r, 2) = ws.Name r = r + 1 Next ActiveWorkbook.Close fn = Dir() Loop End Sub ところで1つのブックに500シートって作れたっけ
・複数のブックのシートを全部まとめて一つのブックにするマクロ
・シート名順に並び変えるマクロ
この辺はググれば出来あいの物が見つかるだろうからそのまま使う
全シートが順番に並んでれば50シートごとにシートを
別ブックにコピーしていく作業は手作業でやっても5分もかからないだろう。
>>900 上限は特に決まって無くて、使用可能メモリに依存、て事らしいね。
シートの数はメモリに依存らしいよ。
903 :
895 :2009/06/09(火) 01:04:15
>>896 各ブックのシートから情報を抜き出すとき、ブックを開いて閉じてを繰り返えしているので、
10くらいに分けたブックを初めに開いておいて収集しようかと考えた次第です。
>>897 Officeスタンダードなので、ACCESSがありませんw
>>898 最初の3行はVBAでやってみました。
Forとかで50回して、名簿1xlsにシートを追加って感じでしょうか?
質問です。 住所録を作っているのですがそこでの数字には「全角文字を使う事」というルールがあります。 また、一つのセルには漢字部分と番地文があります ○ 「漢字+全角数字」 × 「漢字+半角数字」 としたいのですが、「入力規則」で下をキックするもしくは書式設定で半角入力しても強制的に 全角に置き換えて表示とさせたいのですが可能でしょうか? Excelは2002を使用しています。
>>904 WorkSheet_Changeイベント処理でVBA使って半角全角変換
>>903 全ブックをいっぺんに開くならFor Eachの二重ループで全シートにアクセスできる
>>906 それは知ってるけど、ブックの数が37。
タクストレイが渋滞しそうです。
誰がこんなの作ったんだって感じ。
目視ではなくVBAで並べ替えや50まとめをやるなら、 表示が必要ないんだから非表示で開けばいいんじゃね? 非表示でもVBAからのデータアクセスは問題なく出来るし というか、ExcelってMDIアプリなんだから、ブックをいくつ開こうと タスクトレイというかタスクバーのアイコンは1つだろ? ブック1つに対して個別にExcel立ち上げる事も出来るが こういう処理ではソレやるメリット無いし、たとえそれをやっても OSがXPなら、タスクバーアイコンをグループでまとめる機能がある 更に言えばグループ化機能を使わなくても、渋滞するのはVBAで 処理している数秒だけなんだから渋滞したところで何も困らないと思うけど
うだうだ質問してる暇があるなら手作業でやったって1時間もあれば終わる作業だろうにw VBAの勉強がしたいって事であれば他人の完全解答待ってるだけじゃ大した勉強にならんよ。 自分ではここまでやったけどこの部分が分からない、みたいに聞かないと。
>>890 お返事が遅くなりまして申し訳御座いません。
あなた様のご尽力により、見事私めの希望どうりの表示が出来ました。
本当にありがとう御座います。
あなた様のご多幸を心より願っております。<(_ _)>
敬具
>>907 XPならタスクバーのグループ化がOS標準の機能で付いてるだろ
ってよく読んだらタスクトレイ?タスクバーの間違いだよな?
あと、いつも窓を30個ぐらい開いてるんならタスクバーを画面の右か左に縦に置くと
タイトルが省略されにくくなるからアプリの切り替えがやりやすくなるぞ
もはやExcel関係ないな
>>912 質問から見て、たぶん学校の宿題か何か。
1行にまとめるのが条件じゃないのかな。
論理式でA1がりんごかみかんかすいかの時に真、をあらわすには or(a1="りんご",a1="みかん",a1="すいか") とかくしかありませんか? a1=or("りんご","みかん","すいか") のようにまとめて記述することはできませんか? 今回は論理式の記述方法を知りたいので、 りんご、みかん、すいかをB1:B3に入力してvlookupでエラーだと偽という方法は ナシでお願いします。
>>914 B1:B3を使わなくても
=MATCH(A1,{"林檎","蜜柑","西瓜","梨"},0)
=HLOOKUP(A1,{"林檎","蜜柑","西瓜","梨"},1,FALSE)
のように直接書けるってのもアウトですか?
えええええええ論理式関係ないのかwww
>今回は論理式の記述方法を知りたいので はどうなったの?
「論理式」と「数式」を混同してると見た
横レス失礼します
>>914 を関数を使わずに実現する方法ってありますか?
無い
>>921 (A1="りんご")+(A1="みかん")+(A1="すいか")
925 :
923 :2009/06/09(火) 20:01:10
ちょww俺が書いたの無視なの?
はい
>>922 無いとはまたずいぶんだな。
>>923 が1か0になるのが嫌なら=((A1="りんご")+(A1="みかん")+(A1="すいか"))=1 とすりゃ出来るじゃん。
また日本語が不自由なひとがわいてるな >のようにまとめて記述することはできませんか? をなぜ読み飛ばすのか
>>914 学校の論理式の宿題でORを使って出来るだけ簡単に書けっていうのなら=OR(A1={"りんご","みかん","すいか"})の方がいいかもね。
931 :
名無しさん@そうだ選挙にいこう :2009/06/09(火) 20:56:17
常に「おととい」を表示するようにしたいのですが、「=TODAY-2」と打ってみたのですがうまくいきません。おとといの表示でいい方法があればお願いします。
「まとめて記述」じゃ曖昧だって事が分かってないのかねえ。 数式や論理式、関数の意味がよく分かってない事といい、 曖昧な言葉を自分だけの思い込みで使う点といい、 学生さんだとしたらExcel以前に数学や国語を勉強した方がいいと思うよ。
>>929 うおおおおおおおおおおおおおおおありがトーーーーーーーーーーーーーーーーーー
愛してる!!
936 :
931 :2009/06/09(火) 21:14:47
>934 うおおおおおおお、、ここ二ヶ月くらい悩んでいたんですが一気に解決しました!! ありがとうございます!!
それは良かったですね
938 :
名無しさん@そうだ選挙にいこう :2009/06/09(火) 21:24:23
すいません、バイトの出勤表があり、○、×をたぶんセルの入力規則の プルダウンメニューでリスト入力する方法で入力しているのですが、これに バイトの予定が未定の場合△を入力したいということになり、△を入力したいということになったのですが、 この参照元のリストがどこにあるのか分りません、同一シート内には見当たらないので別のシートにあるのですが、 ワークシート分析などでこのリストがどこにあるかトレースする機能などはないのでしょうか? 教えてくださいよろしくお願いします。
>>938 選択肢が○か×だけなら、わざわざシート上にリストを用意してるわけじゃなくて
データ→データの入力規則→設定→元の値
の欄に"○,×"って入れてるだけじゃね?そこを"○,×,△"にすればOK
プルダウンから選ぶなんてちまちましたことしないで 1とか2とかテンキーで入力できる数値にしてあとから一括置換すればいいのに
941 :
名無しさん@そうだ選挙にいこう :2009/06/09(火) 21:33:01
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 勉強中 (マクロを記録してつけたしたり書き換えたりするのがやっと) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 オートフィルタ セルの値 セルの値でオートフィルタすることって可能でしょうか? マクロを記録しようにも当然出来ないし別の方法を考えるべきか悩んでいます。 例えば、住所録を作ってるとします。 住所と別に都道府県だけを入力しているセルも用意してるとします。 A会社 大阪府 大阪府大阪市… 06-0000-0000 B会社 東京都 東京都世田谷区… 03-0000-0000 で、表の外側に、都道府県名を入力するためのセルを用意してその隣に フォームのボタン を配置。 フォームのボタンをクリックするとそのセルに入力された都道府県の会社のみ抽出される。 そんなことが出来たらと思っています。 もし可能なら教えていただけないでしょうか?お願いします。
>>929 普通に知らなかったわ
ちなみにこれ、マクロで使う方法はある?
943 :
名無しさん@そうだ選挙にいこう :2009/06/09(火) 21:36:41
あ、すいません、なんか勘違いしてました、このあいだ いじった時はセルの書式設定の表示形式に○とか×とか△とか入れて ワカンねーとかやっていたのですが、データ入力規則のリストを多分使っているということに気づいたので これをいじればいいだけの話ですよね。単純に多分○,×になっているところに○,△,×にすればいいんですよね。 よく考えたら、自分で選択範囲を設定して入力してるわけだからそこに書いてあるんですよね。 自分で書いていて。あれ?とおもいました。明日会社で試してみます。
>>941 Sub Macro1()
Columns("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=Range("e1")
End Sub
こんな感じ。マクロの記録でもできるよ
Range("e1")をかえれば好きなセルにできる
>>938 おれも
>>939 と同意見だが、もし別のシートにあるのなら名前定義使わないと出来ないはずだから、セルにカーソルを置いて入力規則を調べれば分るだろ?
式が=表とかなってたら、名前ボックスに"表"と入れりゃそこに飛ぶ。
なんだ、自己解決してたか。
>>943 書式設定は「;」で区切って設定する
"し";"ら";"す"
とユーザー定義で設定すると、正の数は「し」負の数は「ら」0は「す」になる
>>942 ないんじゃない?
Evaluate使うなら別だけど。
>>948 ありがと
Evaluateはそのまんまだからなぁ
>>949 そういうときは普通Orじゃ無くてSelect Case使うじゃん。
Select Caseで思い出したんだけど、Ifとの使い分けが良くわからん。 「Ifは上から順に判定、Select Caseは一気に判定」ってことは 本で読んだけど、別に体感速度が速くなるわけじゃいし・・・ 誰か教えて。
同じプログラムをifとselect caseで書いて見ればわかるだろ 3つ以上に分岐するときはcaseの方がわかりやすく美しい
954 :
941 :2009/06/09(火) 23:03:29
>>944 お礼のレス遅くなりすみません。
新規シートで適当に作ったデータだとうまくいくのに、
本番用のシートだとなぜかうまくいかなくていろいろ試行錯誤してました。
(抽出に使う名前が微妙に違っているのが原因でした…)
無事出来ました。思い通りの表が出来ました。
本当にありがとうございました!
>>952 美しいって、誰かに見せたいわけ?wwwww
俺はいつもパスワード掛けて見せないようにしてるんだけど
美を意識しないおまえのプログラムなんかだれもさわりたくないからしっかりパスかけとけ
情報セキュリティの認識もないヘタレは、シッカリ句読点が打てるよう日本語を勉強しろ。
情報セキュリティ云々じゃねーだろ? 汚い奴を人に見せるなってことだよ。
>>955 は数多く分岐するときにSelect Caseより IfとElseIf使った方が速いとかいって汚いコード書いてるんじゃねーの?
Select Caseで素直に書ける時はその方が分かりやすいとは思うが 美しいってのとはちょっと違う気もするんだよなあ
>Select Caseより IfとElseIf使った方が速い ↑はぁ?
>776です Application.OnKeyメソッドを使えばよいというアドバイスをいただき検索しながら挑戦してみたのですがうまくいきませんでした。 まず、どういう状況を考えているかというと例えば = 1 + 2 という数式を入力しようとすると'='と'+'を入力するときにshiftキーを押しますが、 その直後に空白を入れるためにはshiftキーを離さなければショートカットキーが反応してしまいます。 しかし高速に入力していると(私の指の反応が遅いからですが)空白を入れるまでにshiftキーを離せない場合がたまにあるのでそういったときに問題が生じます。 VB editorで以下のマクロをmacro book(?)に保存すると、bookを開いた時点で自動的にWorkbook_Open()が実行され、 その中でOnkeyメソッドがShift + SpaceをSpaceに置き換えるのだと理解しました。 Private Sub Workbook_Open() Application.OnKey "+ ", " " End Sub しかしThisWorkBookというシートに上記のマクロを記述してみましたがShift + Spaceで相変わらずExcel自身のショートカットキーが反応してしまいます。 正しくは下記のようにしなければならないのでしょうか? Private Sub Workbook_Open() Application.OnKey "+ ", "hogehoge" End Sub Sub hogehoge() 空白を入力するマクロ End Sub キーを押すメソッドが分からず試すことができませんでした。 また、できれば特定のexcelファイルだけではなく全てのexcelファイルでこのショートカットキーを殺したいのですが その場合はどのmacro book(?)に記述すればよいのでしょうか? もう少しアドバイスいただければと思います。
and/orって英語の契約書では良くでてくるけどなぁ。 orがxorか否かって論争を避けるために、曖昧さを排除するために 使うんだよねー 遅レスだが w You or your wife can get $1,000.- at xxxxxx. って文章読んで、夫婦そろって行けばそれぞれ$1,000の合計$2,000 もらえるのかっておはなし。
>>963 and/orにすれば曖昧さは解消されるの?
>>961 そのコードは+キーを押したときのコードじゃん。
Shift + Spaceを押したときのコードにしないとだめだよ。
なおOnKeyメソッドは記述したブックだけに効くもんじゃない。
Applicationにかかるから、全部のブックで有効になる。
>>961 はぁ?の意味が分らんが、IfとElseIf使った方が速いのは事実だよ。
俺は速さより可読性優先だけどな。
967 :
名無しさん@そうだ選挙にいこう :2009/06/10(水) 08:31:53
XP HE SP3 Excel2003 を数取機(カウンター)のように使いたいのですが あるマス内の数字に最も素早く1を足し算する方法を教えてください。 VBAは使えません 検索ワードにはexcel 固定数 足し算 1 数取機 等を組み合わせて使いました
968 :
966 :2009/06/10(水) 08:36:42
>>966 に補足です
例えばA1内の数が1555ならそこに1を足した数である1556を
A1内に上書きできる最速の方法を知りたいです。
969 :
967 :2009/06/10(水) 08:38:34
967でした。何度もageてすみません。
そんなもんスピンボタンでも使えよ
>967 絶対にVBAがダメという条件だと、こんなこと↓ぐらいしか思いつかない。 すでにセルに書き込まれている数に+1じゃなくて、 どこか適当なセル(A2と仮定)に半角英字を入力した文字数を別セル(A1と仮定)で調べる方法。 A1セルの式 =LEN(A2) A2セルにカーソルを移動して、カウントする都度[H]でも[J]でもいいからキーをポンポンと 押していく。 カウント終了したら[Enter]キーを押せばA1セルには文字数=カウント数が表示される。
A1にカーソルを置いておいてエンターかカーソルキーの↓を押す で、アクティブセルのある行が現在の数 じゃダメかい
974 :
名無しさん@そうだ選挙にいこう :2009/06/10(水) 09:59:13
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 A1に20090401のような形で日付けが入っており、B1にはその日の注文金額が入っており、 それがn行まであります。 一月ごとの注文金額を出すにはどのように書いたら良いでしょうか? 200904 5320←セルは分けます。 200905 2912 みたいに出したいのです。
年+月となる作業列を作る方法が簡単かと。 A列:元データの「日付」列(「」内は項目見出しのこと) B列:「金額」列 で、1行目は項目見出し、データは2行目からと仮定して、C2セルに =INT(A2/100) と入れて 必要な行数分下へドラッグコピーする。 B1:C(n+1)まで範囲指定してからメニューバーのデータ−ピボットテーブルを選択 [レイアウト]ボタンをクリックしてから 「日付」を行(R)のエリアへ、「金額」をデータ(D)へドラッグ ここらへんは実際の画面をみるとわかる。 日付が文字列だった場合はINTじゃなくてLEFTを使用する。
>972 無理に自分で設問してまで答えなくてもいいと思うんだな。
【1 OSの種類】 WindowsXP 【2 Excelのバージョン】 Excel2007 【3 VBAが使えるか】 はい(初級程度) 【4 VBAでの回答の可否】 可 <状況> 1.画像(bmp)がフォルダに入っています。 画像の数は何千とあり、重複しない番号が振ってあります。 2.Excelのシートがあり、画像用の(画像と同一の)番号が振ってあります。 3.2の番号の下に1の画像を貼りこむのを手作業でやっています。非常に大変です。 <質問> 上記の作業を、関数なりVBAなりを使って簡単に行うことは可能でしょうか。 不可能なら不可能と言っていただけたらと思います。 よろしくお願いいたします。
【1 OSの種類】 WindowsXP 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか】 マクロの記録を改変する程度 【4 VBAでの回答の可否】 可 あるフォルダにエクセルファイルがいくつか入っています。 拡張子は.xlsで目的のエクセルファイル以外はありません。 そのフォルダにある全てのエクセルファイルの、全てのシートのA列の幅を 1.68にしたいのですが、どうやればいのでしょうか? foreachを使うと思いますが、うまく使えません。よければコード書いてください お願いします。
>977 >画像の数は何千とあり ひとつのブックに全部取り込むの? リンク貼り付けじゃないので、ブックのファイルサイズがとんでもないものになるけど大丈夫? PCのメモリによっては不具合が起きるかもしれませんよ。 それから、いくつか質問。 1 1シートにひとつの画像を取り込むのですか? それとも複数? 2 ファイル名となる番号が記録されているセル位置は各シート同一ですか? 3 画像の挿入を 新しいマクロの記録 で記録してコードをみたことはありますか?
>>974 >>975 みたいな方法もあるが、日付を普通のシリアル値に直してからピボットテーブルで
年月でグループ化する方法もある。
シリアル値にするなら区切り位置使えば簡単。
「データ」 「区切り位置」 「次へ」 「次へ」 日付にチェックして「完了」
981 :
974 :2009/06/10(水) 12:38:31
答えていただきありがとうございます。 教えてもらった方法をやってみます。
>978 マクロを記録したブック名を"列幅揃え.xls"として、処理対象ブックのあるフォルダに保存してください。 Option Explicit Dim Path As String, myfile As String Sub 列幅揃え() Path = ThisWorkbook.Path & "\" MsgBox (Path) myfile = Dir(Path) Do While myfile <> Empty myfile = Dir() If (Right(myfile, 4) = ".xls") Or (Right(myfile, 4) = ".XLS") Then If Not (Left(myfile, 4) = "列幅揃え") Then 'マクロを記録しているブックは処理対象外とする Call ブック処理 End If End If Loop MsgBox ("幅揃え処理を終了しました。") End Sub 続きます。
983 :
982 :2009/06/10(水) 12:53:23
続きです。 Private Sub ブック処理() Dim sh As Excel.Worksheet Workbooks.Open Filename:=(Path & myfile) If MsgBox(ActiveWorkbook.Name & "のすべてのシートについて幅揃えを行いますか?", vbYesNo) = vbYes Then For Each sh In ActiveWorkbook.Sheets '全てのシートに対して順次処理する sh.Activate MsgBox ("シート名:" & ActiveSheet.Name) Range("A:A").ColumnWidth = 1.68 Next End If ActiveWorkbook.Close End Sub 不要なMsgboxの行は省略してかまいません。 ひとつのブックの処理が終わる都度「変更を保存しますか?」と聞いてくるので、これがわずらわしいなら 表示させずに強制的に保存する方法もあります。(自分で調べてね)
>>979 情報が足りず、申し訳ございません。
>1 1シートにひとつの画像を取り込むのですか? それとも複数?
貼り込む画像の数は1シートに50個位。それが4シートで1つのブックにつき200個程です。
>2 ファイル名となる番号が記録されているセル位置は各シート同一ですか?
ファイル名となる番号が記録されているセル位置は、各シート同一です。
ブックのフォーマットがあらかじめ決まっていて、そこへ、同じサイズの画像を貼りこんでいきます。
1つのシートで、画像と画像の間隔は、一定です。
>3 画像の挿入を 新しいマクロの記録 で記録してコードをみたことはありますか?
以下のような感じでしょうか。
Sub 画像の挿入()
ActiveSheet.Pictures.Insert( _
"D:\001.bmp" _
).Select
End Sub
このコードをどう書き換えればいいのか、というところで行き詰まります。
よろしくお願いいたします。
>>984 ちなみにどういう仕事(趣味?)のためにそういう事をしたいの?
目的が具体的に分かるともう少しまともなアドバイスが出来るかもしれんのだが・・・
とりあえず今の情報だけだと本当にExcelでそれやる意味あるのか?って思えるな
987 :
名無しさん@そうだ選挙にいこう :2009/06/10(水) 13:48:50
よろしくお願いします Bの列で並び替えしたいんですが A B 1 あ c 2 い b 3 う a ↓ A B 1 あ a 2 い b 3 う c こうなってしまいます。希望は A B 1 う a 2 い b 3 あ c どうしたらいいんでしょうか?XPでexcel2000です
並べ替える前の範囲選択はどうやってますか? まさかB1:B3とか。
989 :
名無しさん@そうだ選挙にいこう :2009/06/10(水) 14:02:19
B(灰色のとこ)をクリックすると列が範囲になって AZ↓ボタンです
>>987 先にBをクリックして、
BとAを範囲選択
その後並びかえ
もしできないならメニューのデータの中に詳細な並び替えオプションがあるからそれ使うとよろし
>>989 (1) Bにマウスポインタを合わせる
(2) 左ボタンを押す(押したまま)
(3) マウスを左に動かす
(4) ポインタがAのとこに来たらボタンを離す
(5) AZ↓
992 :
名無しさん@そうだ選挙にいこう :2009/06/10(水) 14:19:33
出来ました!ありがとうございます もうひとつ聞きたいんですが検索するとき 検索をする文字列に1種類ではなく複数(or検索みたいな)することは出来るんでしょうか?
>984 作ってみた。ただし、1シートに10個の画像を読み込む設定です。 ファイル名を書き込んだセル位置は↓のように配列で指定してます。(シート共通が前提) 画像を貼り付ける場所は、ファイル名を書き込んであるセルのひとつ下になります。 Sub 画像読込() Cell_Adr_Ary = Array("A1", "A3", "A5", "A7", "A9", "B1", "B3", "B5", "B7", "B9") Path = ThisWorkbook.Path & "\" ' フォルダのパス取得 For Each sh In ActiveWorkbook.Sheets sh.Activate For Each C In Cell_Adr_Ary If IsNull(Range(C).Value) Then MsgBox (C & "セルにはファイル名指定なし") Exit For End If Full_Path = Path & Range(C).Value & ".bmp" On Error GoTo Error_Proc sh.Range(C).Offset(1, 0).Select '←ひとつ下のセルを選択 ActiveSheet.Pictures.Insert (Path & Range(C).Value & ".bmp") GoTo Normal_proc Error_Proc: MsgBox (Range(C).Value & ".bmpファイルがありません。") Resume Next Normal_proc: Next Next End Sub
>>993 そういう場合は文字列の配列じゃなくてRange型にするもんだよ
Set R = Range("A1,A3,A5,A7,A9,B1,B3,B5,B7,B9")
For Each C In R
そうすれば Range(C).Value みたいになってる部分がみんな C.Value に短縮できるようになる
で?
996 :
993 :2009/06/10(水) 15:10:02
>994 そういう方法があったんですね。勉強になりました、ありがとうございます。
>>986 仕事です。
データをグラフ化してくれるアプリケーションがあるのですが、
そこから取得した画像(グラフ)を、Excelにまとめて、報告書として提出しています。
報告書は、「Excelのこの形式で」と、管理者から指定されております。
しかしながら、(Excel以外で)この業務を行うのに適切な方法があれば、
次の機会に、改善点として提言したいと思います。
(どんな方法でやるのが適切か、もし何かアドバイスがあればお願いいたします)
当面は変更できないので、Excelでの作業になります。
>>993-994 ありがとうございます。
目的のファイルを該当するフォルダへ探しにいき、
ファイル名とセルのデータが一致したら、画像を挿入、
で、(オフセットで)ひとつ下のセルに移動し、同じことをする、
という感じでしょうか。
エラーの返しも含めていただいているのですね。
>>994 は、
>>993 を改良するアイディアですね。
すらすら読み解くレベルではないので、時間をかけて取り組んでみようと思います。
行き詰まったらまた尋ねさせていただけたらと存じます。
998 :
993 :2009/06/10(水) 19:00:09
>997 マクロを記録したブックは、画像ファイルと同じフォルダに入れてください。 Path = ThisWorkbook.Path & "\" ' フォルダのパス取得 ←開いているブックのパスのこと それから50個のセルアドレスの指定方法は、レンジで利用するとした場合 array1 = "A1,A3,A5,A7,A9,A11,A13,A15,A17,A19,A21," 〜 array5 = "E1,E3,E5,E7,E9,E11,E13,E15,E17,E19,E21" Set R = Range(array1 & array2 & array3 & array4 & array5) For Each C In R などとして読みやすくできると思う。 画像の拡大・縮小をして収まりをよくするような処理は、まだ自分でしたことがないので入れてません。
1000 :
名無しさん@そうだ選挙にいこう :2009/06/10(水) 19:22:22
age
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。