ham_kamo の回答履歴
- CSV形式の並び替え
いつも助言頂き感謝します。 CSVファイルに下記のように 名前,性別,年齢 を記述したファイルがあります。 これを配列にいれ、listとsplit でTABLEを表示させることは出来るのですが、取り込んだ配列を年齢の若い順に表示させるにはどのようにすれば良いでしょうか? $log_name = "/home/www/luzy.castsystem.jp/log/4.txt"; $array = file($logfile); $c = count($array); $i = 0; while($i < $c){ list($name,$sex,$age) = split("\,",$array[$i]); $i++; } 太郎,男,15 一郎,男,10 次郎,男,18 花子,女,17
- エクセルでの質問です
毎度お世話になっております。 エクセルで下記のような事は出来ますでしょうか? シート1に品名、数量が記載されておりますがシート2に抽出された結果のみ表示する 例)シート1 りんご 100 みかん 200 バナナ 200 りんご 200 バナナ 300 いちご 200 シート2(結果表示) りんご 300 みかん 200 バナナ 500 いちご 200 と、それぞれの合計数量を抽出結果として表示して管理を行いたいと思ってます。 教えてください
- ベストアンサー
- litoru
- Windows XP
- 回答数2
- 重複セルと抽出とナンバリング エクセル2002
エクセルで同一データの抽出をして、下記のようにナンバリングをしたいのですが、何か良い方法はないでしょうか。 住所あ →1 住所あ →2 住所い →1 住所う →1 住所う →2 住所う →3 住所う →4 住所え →1 住所お →1 住所お →2
- Excelの作業で困っています。
エクセルで、データをコード管理しているのですが、下記(山田太郎と田中花子)のように、同じ人でコード(C1)を2つ所有している場合があるので、重複しているのデータを探し出し、そのデータを削除する作業をしているのですが、5000件以上のデータがあるものですから、相当時間がかかってしまいます。何か関数とか使って処理する方法がないか教えてください。ちなみに今は、データの並び替えをして1件ずつ削除しています。 C1 C2 C3 R1 100 山田 太郎 ヤマダ タロウ R2 200 田中 花子 タナカ ハナコ R3 105 山田 太郎 ヤマダ タロウ R4 300 鈴木 次郎 スズキ ジロウ R5 250 田中 花子 タナカ ハナコ
- ベストアンサー
- HIKARI1210
- その他(インターネット・Webサービス)
- 回答数3
- エクセル フォントサイズ変更
エクセルでインデックスラベルを作成しています。 1シート目に罫線等でラベルの様式を作り、それに文字データを入れ、 2シート目に参照して文字のみ印刷するようにしています。 そこで、文字数が3~8文字ぐらいなのですが、 文字数によってフォントサイズを自動で変更できないかと思っています。 1行に入れる文字数は5文字で、それ以上はAlt改行で2行にしており、 セル内には収まっているので「折り返して全体を表示」や「縮小して全体を表示」ではなく、フォントサイズを変更したいです。 例えば、3文字は11、4文字は10、5文字は9、それ以上の2行になるものは8という風に、 入力すると自動でそのサイズになってほしいです。 その都度サイズ変更するのはかなり手間ですし、参照しているところには、 サイズ変更はされないのでとても時間がかかります。 もし、不可能なのであれば、ショートカットキー(Ctrl+△)などで、 サイズ変更するという方法もあるようなのですが、やり方がわかりません。 素人ですので、あまり難しいことはわかりませんが、ご指導よろしくお願いします。
- vba 初心者
いつもお世話様です。 vbaを始めたばっかりで、色々な情報をもらったのですが、 まだ理解に苦しんでいるところがあります。 Private Declare Sub Sleep Lib "kernel32" _ (ByVal dwMilliseconds As Long) Sub PrintPDF(ByVal FileName As String, _ Optional ByVal Copies As Long = 1) Dim dtLimit As Date Dim lngChannel As Long Dim I As Long Dim blnAlerts As Boolean CreateObject("Wscript.Shell").Run "AcroRd32.exe", 7 dtLimit = Now() + TimeSerial(0, 0, 10) ' 起動待ちの制限時間 With Application blnAlerts = .DisplayAlerts 'DisplayAlertsを元に戻す為に初期値を記憶 .DisplayAlerts = False End With On Error GoTo Err_Handler lngChannel = DDEInitiate("Acroview", "Control") On Error GoTo 0 Application.DisplayAlerts = blnAlerts For I = 1 To Copies DDEExecute lngChannel, _ "[FilePrintSilent(""" & FileName & """)]" Next DDEExecute lngChannel, "[AppExit]" DDETerminate lngChannel Exit Sub Err_Handler: If Now() < dtLimit Then Sleep 200 Resume End If Application.DisplayAlerts = blnAlerts Err.Raise Err.Number, , "Adobe Readerとの通信を開始できません" End Sub Dim searchNo As Variant Dim searchCount As Integer Dim Localpath As Variant Dim MyFile As String Dim strFindRange As String Localpath = ThisWorkbook.Path Do searchNo = _ StrConv(InputBox("図番を入力してください"), vbNarrow + vbUpperCase) 'Strconv=大文字・半角 If searchNo = "EXIT" Then Exit Sub Do searchCount = _ WorksheetFunction.CountIf(ActiveSheet.Range("A:A"), searchNo) Select Case searchCount ←(2) Case 0 MsgBox "正しい番号を入力して下さい" Exit Do '外側のループに移動 Case 1 strFindRange = _ ActiveSheet.Range("A:A"). _ Find(what:=searchNo, Lookat:=xlWhole).Address ←(4) Case Else MsgBox "同じ番号が複数登録されています" Exit Do End Select MyFile = Localpath & "\" & searchNo & Range(strFindRange).Offset(0, 1) & ".pdf" If Dir(MyFile) = "" Then MsgBox MyFile & " が見つかりません" & vbCrLf _ & "実際にファイルが有るか確認して下さい" Exit Do End If If MsgBox(Range(strFindRange).Offset(0, 1) _ & " を印刷しますか", vbOKCancel) = vbCancel Then Exit Do End If PrintPDF (MyFile) Exit Do Loop Loop End Sub (1)ここの部分で、空白かキャンセルボタンをしたら StrConv(InputBox("図番を入力してください"), vbNarrow + vbUpperCase)に戻りたいのですが、この場合どこにexit do を入れたいか分かりません。 (2)データが入っているフォルダ内に複数あるならそれを分岐にする方法ってありませんか? (3)ここのRange(strFindRange).Offset(0, 1) は必要があるのでしょうか? (4)Find(what:=searchNo, Lookat:=xlWhole).Address 部分の意味がわからないのですが教えてください。 ご指導よろしくお願いします
- ベストアンサー
- nana1010
- Visual Basic
- 回答数5
- エクセル:マクロの起動条件
お世話になります。 以下の条件でのマクロを起動する方法、及びそのマクロを教えてください。 《条件》 ブックを開いた時、あるシートのC列でデータが入っている最下行の行番号とA列のデータが入って最下行の行番号の差が100以下だった場合、マクロを実行する。 (なおC列の行番号の方が必ず大きいです) ちなみに実行したいマクロは1~6の手順です。 1.ブックを開いたとき 2.「入力用」という名前のシートのC列でデータが入っている最下行の行番号とA列のデータが入っている最下行の行番号の差が100以下だった場合 3.「入力用」というシートにかかっているシートの保護をはずし 4.データが入っているC列の最下行のA~Z列を選択して、50行分 下にコピーする。 (例えば、C列の最下行が350行の場合、A350~Z350まで を選択したあと400行まで下にコピーする。) 5.再度シートの保護をかけ 6.A列でデータが入っている最下行の1つ下のセルを選択する ちなみに、2の条件に当てはまらないときはマクロを実行しません。 またC列の最下行よりA列の最下行が大きい数字になることはないはずですが、もし同じかA列の方が大きい場合、「エラー:C列よりA列が大きくなっています」と画面に表示させたい。 なお、行番号の差:100、選択するA~Z行、50行分下にコピー は変わる可能性があるので、修正する場合どの部分を修正すればよいかも教えてください。 よろしくお願いします。
- エクセル フォントサイズ変更
エクセルでインデックスラベルを作成しています。 1シート目に罫線等でラベルの様式を作り、それに文字データを入れ、 2シート目に参照して文字のみ印刷するようにしています。 そこで、文字数が3~8文字ぐらいなのですが、 文字数によってフォントサイズを自動で変更できないかと思っています。 1行に入れる文字数は5文字で、それ以上はAlt改行で2行にしており、 セル内には収まっているので「折り返して全体を表示」や「縮小して全体を表示」ではなく、フォントサイズを変更したいです。 例えば、3文字は11、4文字は10、5文字は9、それ以上の2行になるものは8という風に、 入力すると自動でそのサイズになってほしいです。 その都度サイズ変更するのはかなり手間ですし、参照しているところには、 サイズ変更はされないのでとても時間がかかります。 もし、不可能なのであれば、ショートカットキー(Ctrl+△)などで、 サイズ変更するという方法もあるようなのですが、やり方がわかりません。 素人ですので、あまり難しいことはわかりませんが、ご指導よろしくお願いします。
- エクセル:マクロの起動条件
お世話になります。 以下の条件でのマクロを起動する方法、及びそのマクロを教えてください。 《条件》 ブックを開いた時、あるシートのC列でデータが入っている最下行の行番号とA列のデータが入って最下行の行番号の差が100以下だった場合、マクロを実行する。 (なおC列の行番号の方が必ず大きいです) ちなみに実行したいマクロは1~6の手順です。 1.ブックを開いたとき 2.「入力用」という名前のシートのC列でデータが入っている最下行の行番号とA列のデータが入っている最下行の行番号の差が100以下だった場合 3.「入力用」というシートにかかっているシートの保護をはずし 4.データが入っているC列の最下行のA~Z列を選択して、50行分 下にコピーする。 (例えば、C列の最下行が350行の場合、A350~Z350まで を選択したあと400行まで下にコピーする。) 5.再度シートの保護をかけ 6.A列でデータが入っている最下行の1つ下のセルを選択する ちなみに、2の条件に当てはまらないときはマクロを実行しません。 またC列の最下行よりA列の最下行が大きい数字になることはないはずですが、もし同じかA列の方が大きい場合、「エラー:C列よりA列が大きくなっています」と画面に表示させたい。 なお、行番号の差:100、選択するA~Z行、50行分下にコピー は変わる可能性があるので、修正する場合どの部分を修正すればよいかも教えてください。 よろしくお願いします。
- エクセル フォントサイズ変更
エクセルでインデックスラベルを作成しています。 1シート目に罫線等でラベルの様式を作り、それに文字データを入れ、 2シート目に参照して文字のみ印刷するようにしています。 そこで、文字数が3~8文字ぐらいなのですが、 文字数によってフォントサイズを自動で変更できないかと思っています。 1行に入れる文字数は5文字で、それ以上はAlt改行で2行にしており、 セル内には収まっているので「折り返して全体を表示」や「縮小して全体を表示」ではなく、フォントサイズを変更したいです。 例えば、3文字は11、4文字は10、5文字は9、それ以上の2行になるものは8という風に、 入力すると自動でそのサイズになってほしいです。 その都度サイズ変更するのはかなり手間ですし、参照しているところには、 サイズ変更はされないのでとても時間がかかります。 もし、不可能なのであれば、ショートカットキー(Ctrl+△)などで、 サイズ変更するという方法もあるようなのですが、やり方がわかりません。 素人ですので、あまり難しいことはわかりませんが、ご指導よろしくお願いします。
- Excel リンク設定
Excelで、リンク設定した時に表示される文字が、 URLやファイルの場所詳細ではなく、 こちらから指定した言葉で表示したい。 例;セルに「確認されたい方はこちら」と表示しておいて、 これを押した場合、指定したURLやファイルに飛ぶようにしたです。 教えてください。
- エクセル フォントサイズ変更
エクセルでインデックスラベルを作成しています。 1シート目に罫線等でラベルの様式を作り、それに文字データを入れ、 2シート目に参照して文字のみ印刷するようにしています。 そこで、文字数が3~8文字ぐらいなのですが、 文字数によってフォントサイズを自動で変更できないかと思っています。 1行に入れる文字数は5文字で、それ以上はAlt改行で2行にしており、 セル内には収まっているので「折り返して全体を表示」や「縮小して全体を表示」ではなく、フォントサイズを変更したいです。 例えば、3文字は11、4文字は10、5文字は9、それ以上の2行になるものは8という風に、 入力すると自動でそのサイズになってほしいです。 その都度サイズ変更するのはかなり手間ですし、参照しているところには、 サイズ変更はされないのでとても時間がかかります。 もし、不可能なのであれば、ショートカットキー(Ctrl+△)などで、 サイズ変更するという方法もあるようなのですが、やり方がわかりません。 素人ですので、あまり難しいことはわかりませんが、ご指導よろしくお願いします。
- VBAでのセルの複数選択時の処理について
現在EXCEL VBAである行の値が変わったときにその列の塗りつぶしの 色を変えるといった処理を作成しております。 そこで、複数選択して値を変えた場合の処理が変数の型が一致しません 的なエラーが表示されてしまいます。 どのように修正したらうまくいくでしょうか? 教えてください。 ソースは下記の通りとなります。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 13 Then Exit Sub Application.EnableEvents = False MsgBox (Target.Rows.Count) Dim rngSelectRng As Range For Each rngSelectRng In Target If rngSelectRng.Value = "" Then rngSelectRng.Value = " " 'ステータス欄の入力の判断 'Select Case Target.Rows.Value MsgBox (Target.Row) Select Case rngSelectRng.Value Case "あああ" Worksheets("表1").Rows(Target.Row).Interior.ColorIndex = 24 Case "いいい" Worksheets("表1").Rows(Target.Row).Interior.ColorIndex = 35 Case "ううう" Worksheets("表1").Rows(Target.Row).Interior.ColorIndex = 38 Case "えええ" Worksheets("表1").Rows(Target.Row).Interior.ColorIndex = 36 Case "おおお" Worksheets("表1").Rows(Target.Row).Interior.ColorIndex = 16 Case Else Worksheets("表1").Rows(Target.Row).Interior.ColorIndex = 2 End Select Next Application.EnableEvents = True End Sub
- ベストアンサー
- ryota0117
- Visual Basic
- 回答数1
- Download Ninjaって何ですか?
ブログを持ってるのですが、AGENTに「Download Ninja 2.0」とあるアクセスがものすごくあって、何だか気味が悪いのですが、「Download Ninja」とは何なのでしょうか? 宜しくお願いします。
- ベストアンサー
- hcntkxbw
- その他(インターネット・Webサービス)
- 回答数3
- 半角英数字の判別
お世話になります テキストフィールドにおいて半角英数字のチェックをしたいのですが・・・ 例えば『012ab』のような場合、 <script Language="JavaScript"> <!-- function checkText() { txt = document.myFORM.moto.value; if (txt.match(/[^a-z|^A-Z]/g)) alert("アルファベット以外が含まれてます"); } //--> </script> <form name="myFORM"> <input type="text" name="moto"> <input type="button" value="調べる" onClick="checkText()"> </form> では数字が入力されてるとalertされます function checkNum() { txt = document.myFORM.moto.value; for (i=0; i<txt.length; i++) { c = txt.charAt(i); if ("0123456789".indexOf(c,0) < 0) { alert("数値以外が含まれてます"); return; } } } //--> </script> <form name="myFORM"> <input type="text" name="moto"> <input type="button" value="調べる" onClick="checkNum()"> </form> ではアルファベットがあるとalertされてしまいます この2つをどのように組み合わせれば半角英数字以外であればalertされるようになるのでしょうか?
- ベストアンサー
- leap_day
- JavaScript
- 回答数4
- エクセルの検索関数について
エクセルの検索関数について、以下のことで教えてください。 以下のような甲~丁製品データが並んでいます。B列にはチェックボックスを配置し、例えば「丙社製品」を選ぶ場合にB3にあるチェックボックスにチェックしてA3セルが「TRUE」となるようにセットされています(チェックしたチェックボックスは■で表現しています)。チェックされる(TRUEとなる)製品は一つだけです。 <シート名:製品リスト> A B C 1 FALSE □ 甲社製品 2 FALSE □ 乙社製品 3 TRUE ■ 丙社製品 4 FALSE □ 丁社製品 そこで、『本シート内A1~A4中の「TRUE」に該当する製品名(C列の何れか)を拾って』別シートのあるセルに「○社製品」と掲載したいのです。 IF関数でも可能なのですが、製品が7つ以上の場合には使えません。VLOOKUP関数をやってみましたが、A列の「TRUE」「FALSE」がランダムになる為、「昇順」とならず、エラーが出てしまいます。 単純なことなのかもしれませんが、壁に当たっています。 どなたか分かる方がいましたら教えてください。
- エクセルVBAで範囲を都度指定したい
教えてください。 指定した範囲から先頭がhのセルについて 色を付けていますが、範囲を固定ではなく マウスで都度選択させたいのですが どう直せば良いのでしょうか。 ActiveCell にすると最初のひとつしか変わりません。 Sub TEST() Dim rg As Range For Each rg In Range("D7", "D14") If Left(rg.Value, 1) <> "h" Then rg.Interior.ColorIndex = 23 rg.Offset(, 1).Interior.ColorIndex = 24 End If Next rg End Sub
- ベストアンサー
- noname#252806
- オフィス系ソフト
- 回答数2
- vba 初心者
いつもお世話様です。 vbaを始めたばっかりで、色々な情報をもらったのですが、 まだ理解に苦しんでいるところがあります。 Private Declare Sub Sleep Lib "kernel32" _ (ByVal dwMilliseconds As Long) Sub PrintPDF(ByVal FileName As String, _ Optional ByVal Copies As Long = 1) Dim dtLimit As Date Dim lngChannel As Long Dim I As Long Dim blnAlerts As Boolean CreateObject("Wscript.Shell").Run "AcroRd32.exe", 7 dtLimit = Now() + TimeSerial(0, 0, 10) ' 起動待ちの制限時間 With Application blnAlerts = .DisplayAlerts 'DisplayAlertsを元に戻す為に初期値を記憶 .DisplayAlerts = False End With On Error GoTo Err_Handler lngChannel = DDEInitiate("Acroview", "Control") On Error GoTo 0 Application.DisplayAlerts = blnAlerts For I = 1 To Copies DDEExecute lngChannel, _ "[FilePrintSilent(""" & FileName & """)]" Next DDEExecute lngChannel, "[AppExit]" DDETerminate lngChannel Exit Sub Err_Handler: If Now() < dtLimit Then Sleep 200 Resume End If Application.DisplayAlerts = blnAlerts Err.Raise Err.Number, , "Adobe Readerとの通信を開始できません" End Sub Dim searchNo As Variant Dim searchCount As Integer Dim Localpath As Variant Dim MyFile As String Dim strFindRange As String Localpath = ThisWorkbook.Path Do searchNo = _ StrConv(InputBox("図番を入力してください"), vbNarrow + vbUpperCase) 'Strconv=大文字・半角 If searchNo = "EXIT" Then Exit Sub Do searchCount = _ WorksheetFunction.CountIf(ActiveSheet.Range("A:A"), searchNo) Select Case searchCount ←(2) Case 0 MsgBox "正しい番号を入力して下さい" Exit Do '外側のループに移動 Case 1 strFindRange = _ ActiveSheet.Range("A:A"). _ Find(what:=searchNo, Lookat:=xlWhole).Address ←(4) Case Else MsgBox "同じ番号が複数登録されています" Exit Do End Select MyFile = Localpath & "\" & searchNo & Range(strFindRange).Offset(0, 1) & ".pdf" If Dir(MyFile) = "" Then MsgBox MyFile & " が見つかりません" & vbCrLf _ & "実際にファイルが有るか確認して下さい" Exit Do End If If MsgBox(Range(strFindRange).Offset(0, 1) _ & " を印刷しますか", vbOKCancel) = vbCancel Then Exit Do End If PrintPDF (MyFile) Exit Do Loop Loop End Sub (1)ここの部分で、空白かキャンセルボタンをしたら StrConv(InputBox("図番を入力してください"), vbNarrow + vbUpperCase)に戻りたいのですが、この場合どこにexit do を入れたいか分かりません。 (2)データが入っているフォルダ内に複数あるならそれを分岐にする方法ってありませんか? (3)ここのRange(strFindRange).Offset(0, 1) は必要があるのでしょうか? (4)Find(what:=searchNo, Lookat:=xlWhole).Address 部分の意味がわからないのですが教えてください。 ご指導よろしくお願いします
- ベストアンサー
- nana1010
- Visual Basic
- 回答数5